void gum_sanity_checker_destroy (GumSanityChecker * checker) { GumSanityCheckerPrivate * priv = checker->priv; if (priv->bounds_checker != NULL) { g_object_unref (priv->bounds_checker); priv->bounds_checker = NULL; } if (priv->instance_tracker != NULL) { g_object_unref (priv->instance_tracker); priv->instance_tracker = NULL; } if (priv->alloc_probe != NULL) { g_object_unref (priv->alloc_probe); priv->alloc_probe = NULL; g_object_unref (priv->alloc_tracker); priv->alloc_tracker = NULL; } gum_heap_api_list_free (checker->priv->heap_apis); gum_free (checker); }
static void gum_page_pool_finalize (GObject * object) { GumPagePool * self = GUM_PAGE_POOL (object); GumPagePoolPrivate * priv = GUM_PAGE_POOL_GET_PRIVATE (self); gum_free (priv->block_details); gum_free_pages (priv->pool); G_OBJECT_CLASS (gum_page_pool_parent_class)->finalize (object); }
/** * gum_list_free: * @list: a #GumList * * Frees all of the memory used by a #GumList. * The freed elements are returned to the slice allocator. * * <note><para> * If list elements contain dynamically-allocated memory, * they should be freed first. * </para></note> */ void gum_list_free (GumList *list) { GumList * walk; for (walk = list; walk != NULL;) { GumList * next; next = walk->next; gum_free (walk); walk = next; } }
void gum_cobject_free (GumCObject * cobject) { gum_free (cobject); }
void gum_allocation_block_free (GumAllocationBlock * block) { gum_free (block); }