Index: trunk/src_plugins/fontmode/preview.c =================================================================== --- trunk/src_plugins/fontmode/preview.c (revision 38403) +++ trunk/src_plugins/fontmode/preview.c (revision 38404) @@ -330,6 +330,11 @@ if ((edit2(&ed2) != 0) || (ed2.name == NULL) || (*ed2.name == '\0')) return; + if (!fontedit_src->entity_tbl_valid) { + htsi_init(&fontedit_src->entity_tbl, strhash, strkeyeq); + fontedit_src->entity_tbl_valid = 1; + } + /* renamed: remove old entry */ if ((orig_name != NULL) && (strcmp(ed2.name, orig_name) != 0)) { e = htsi_popentry(&fontedit_src->entity_tbl, orig_name); @@ -344,8 +349,6 @@ else /* adding a new entry */ htsi_insert(&fontedit_src->entity_tbl, ed2.name, ed2.val); - fontedit_src->entity_tbl_valid = 1; - fmprv_pcb2preview(ctx); } @@ -426,6 +429,11 @@ if ((orig_name != NULL) && (strcmp(ed2.name, orig_name) != 0)) htkc_popentry(&fontedit_src->kerning_tbl, key); + if (!fontedit_src->kerning_tbl_valid) { + htkc_init(&fontedit_src->kerning_tbl, htkc_keyhash, htkc_keyeq); + fontedit_src->kerning_tbl_valid = 1; + } + e = htkc_getentry(&fontedit_src->kerning_tbl, key); if (e != NULL) /* adding an entry that's already in - modify existing */ e->value = ed2.val; @@ -432,8 +440,6 @@ else /* adding a new entry */ htkc_insert(&fontedit_src->kerning_tbl, key, ed2.val); - fontedit_src->kerning_tbl_valid = 1; - free(ed2.name); fmprv_pcb2preview(ctx); }