void fcitx_input_method_group_free(FcitxInputMethodGroup* group) { free(group->layoutInfo.layout); free(group->layoutInfo.variant); fcitx_ptr_array_free(group->items); free(group); }
void fcitx_input_method_manager_free(FcitxInputMethodManager* self) { fcitx_dict_free(self->ims); fcitx_ptr_array_free(self->groups); if (self->destroyNotify) { self->destroyNotify(self->userData); } free(self); }
void fcitx_addon_manager_free(FcitxAddonManager* manager) { if (manager->loaded) { fcitx_addon_manager_unload(manager); } fcitx_dict_free(manager->properties); fcitx_ptr_array_free(manager->loadedAddons); fcitx_standard_path_unref(manager->standardPath); fcitx_dict_free(manager->addons); fcitx_dict_free(manager->resolvers); fcitx_string_hashset_free(manager->enabledAddons); fcitx_string_hashset_free(manager->disabledAddons); free(manager); }