static void hashtable_generic_free_entry(dcontext_t *dcontext, generic_table_t *htable, generic_entry_t *entry) { if (htable->free_payload_func != NULL) (*htable->free_payload_func)(dcontext, entry->payload); HEAP_TYPE_FREE(dcontext, entry, generic_entry_t, ACCT_OTHER, PROTECTED); }
static void fragment_tree_destroy(fragment_tree_t *tree) { special_heap_free(tree->node_heap, tree->nil); special_heap_exit(tree->node_heap); special_heap_exit(tree->trace_heap); HEAP_TYPE_FREE(GLOBAL_DCONTEXT, tree, fragment_tree_t, ACCT_OTHER, UNPROTECTED); }
static void callee_info_free(dcontext_t *dcontext, callee_info_t *ci) { if (ci->ilist != NULL) { ASSERT(ci->opt_inline); instrlist_clear_and_destroy(GLOBAL_DCONTEXT, ci->ilist); } HEAP_TYPE_FREE(GLOBAL_DCONTEXT, ci, callee_info_t, ACCT_CLEANCALL, PROTECTED); }
void os_loader_exit(void) { HEAP_ARRAY_FREE(GLOBAL_DCONTEXT, libdr_opd->os_data.segments, module_segment_t, libdr_opd->os_data.alloc_segments, ACCT_OTHER, PROTECTED); HEAP_TYPE_FREE(GLOBAL_DCONTEXT, libdr_opd, os_privmod_data_t, ACCT_OTHER, PROTECTED); }
/* vmvector callbacks */ static void allmem_info_free(void *data) { HEAP_TYPE_FREE(GLOBAL_DCONTEXT, data, allmem_info_t, ACCT_MEM_MGT, PROTECTED); }