data: one trie for maps and dictionaries, one loader
The hash map served a single exact-match lookup that the trie already answers, at the price of a second container, a second file loader with its own drift, and a Str-to-UTF-8 conversion on every chain probe. The files are small (kanji.dict is 7.5k lines), so the trie holds both. trieopen validates keys and each space-separated value word against Str and reports path:line; trielookup takes the Str every caller holds and treats a nil trie as an unloaded map; trienew/trieput exist for tests. The overflow guards on growth, Trie.root (always 0) and the per-language init loop written twice are gone.
This commit is contained in:
@@ -12,11 +12,8 @@ void str_init_utf8(struct ct*);
|
||||
void str_edit_and_alias(struct ct*);
|
||||
void str_utf8_capacity(struct ct*);
|
||||
void str_invalid_and_full_appends(struct ct*);
|
||||
void hmap_set_replace_and_grow(struct ct*);
|
||||
void hmap_long_utf8_keys(struct ct*);
|
||||
void hmap_binary_keys_and_invalid_lengths(struct ct*);
|
||||
void trie_exact_prefix_and_duplicate(struct ct*);
|
||||
void trie_optional_outputs_and_invalid_lengths(struct ct*);
|
||||
void trie_put_and_unloaded(struct ct*);
|
||||
void popup_layout(struct ct*);
|
||||
void font_render(struct ct*);
|
||||
void production_maps_load(struct ct*);
|
||||
|
||||
Reference in New Issue
Block a user