static void userdef_free_keymaps(UserDef *userdef) { for (wmKeyMap *km = userdef->user_keymaps.first, *km_next; km; km = km_next) { km_next = km->next; for (wmKeyMapDiffItem *kmdi = km->diff_items.first; kmdi; kmdi = kmdi->next) { if (kmdi->add_item) { keymap_item_free(kmdi->add_item); MEM_freeN(kmdi->add_item); } if (kmdi->remove_item) { keymap_item_free(kmdi->remove_item); MEM_freeN(kmdi->remove_item); } } for (wmKeyMapItem *kmi = km->items.first; kmi; kmi = kmi->next) { keymap_item_free(kmi); } BLI_freelistN(&km->diff_items); BLI_freelistN(&km->items); MEM_freeN(km); } BLI_listbase_clear(&userdef->user_keymaps); }
void BKE_userdef_free(void) { wmKeyMap *km; wmKeyMapItem *kmi; wmKeyMapDiffItem *kmdi; for(km=U.user_keymaps.first; km; km=km->next) { for(kmdi=km->diff_items.first; kmdi; kmdi=kmdi->next) { if(kmdi->add_item) { keymap_item_free(kmdi->add_item); MEM_freeN(kmdi->add_item); } if(kmdi->remove_item) { keymap_item_free(kmdi->remove_item); MEM_freeN(kmdi->remove_item); } } for(kmi=km->items.first; kmi; kmi=kmi->next) keymap_item_free(kmi); BLI_freelistN(&km->diff_items); BLI_freelistN(&km->items); } BLI_freelistN(&U.uistyles); BLI_freelistN(&U.uifonts); BLI_freelistN(&U.themes); BLI_freelistN(&U.user_keymaps); BLI_freelistN(&U.addons); }
void BKE_userdef_free(void) { wmKeyMap *km; wmKeyMapItem *kmi; wmKeyMapDiffItem *kmdi; bAddon *addon, *addon_next; uiFont *font; for (km = U.user_keymaps.first; km; km = km->next) { for (kmdi = km->diff_items.first; kmdi; kmdi = kmdi->next) { if (kmdi->add_item) { keymap_item_free(kmdi->add_item); MEM_freeN(kmdi->add_item); } if (kmdi->remove_item) { keymap_item_free(kmdi->remove_item); MEM_freeN(kmdi->remove_item); } } for (kmi = km->items.first; kmi; kmi = kmi->next) keymap_item_free(kmi); BLI_freelistN(&km->diff_items); BLI_freelistN(&km->items); } for (addon = U.addons.first; addon; addon = addon_next) { addon_next = addon->next; if (addon->prop) { IDP_FreeProperty(addon->prop); MEM_freeN(addon->prop); } MEM_freeN(addon); } for (font = U.uifonts.first; font; font = font->next) { BLF_unload_id(font->blf_id); } BLF_default_set(-1); BLI_freelistN(&U.autoexec_paths); BLI_freelistN(&U.uistyles); BLI_freelistN(&U.uifonts); BLI_freelistN(&U.themes); BLI_freelistN(&U.user_keymaps); }