+ initialise_memory_list(&abbreviations_optimal_parse_schedule_memlist,
+ sizeof(int), 0, (void**)&abbreviations_optimal_parse_schedule,
+ "abbreviations optimal parse schedule");
+ initialise_memory_list(&abbreviations_optimal_parse_scores_memlist,
+ sizeof(int), 0, (void**)&abbreviations_optimal_parse_scores,
+ "abbreviations optimal parse scores");
+
+ initialise_memory_list(&dtree_memlist,
+ sizeof(dict_tree_node), 1500, (void**)&dtree,
+ "red-black tree for dictionary");
+ initialise_memory_list(&dict_sort_codes_memlist,
+ sizeof(uchar), 1500*DICT_WORD_BYTES, (void**)&dict_sort_codes,
+ "dictionary sort codes");
+ initialise_memory_list(&prepared_sort_memlist,
+ sizeof(uchar), DICT_WORD_BYTES, (void**)&prepared_sort,
+ "prepared sort buffer");
+
+ final_dict_order = NULL; /* will be allocated at sort_dictionary() time */
+
+ /* The exact size will be 7+7*num for z3, 7+9*num for z4+,
+ 4+DICT_ENTRY_BYTE_LENGTH*num for Glulx. But this is just an initial
+ allocation; we don't have to be precise. */
+ initialise_memory_list(&dictionary_memlist,
+ sizeof(uchar), 1000*DICT_ENTRY_BYTE_LENGTH, (void**)&dictionary,
+ "dictionary");
+
+ initialise_memory_list(&low_strings_memlist,
+ sizeof(uchar), 1024, (void**)&low_strings,
+ "low (abbreviation) strings");