static void gum_page_pool_constructed (GObject * object) { GumPagePool * self = GUM_PAGE_POOL (object); GumPagePoolPrivate * priv = GUM_PAGE_POOL_GET_PRIVATE (self); priv->available = priv->size; priv->pool = gum_alloc_n_pages (priv->size, GUM_PAGE_NO_ACCESS); priv->pool_end = priv->pool + (priv->size * priv->page_size); priv->block_details = gum_malloc0 (priv->size * sizeof (GumBlockDetails)); }
GumSanityChecker * gum_sanity_checker_new_with_heap_apis (const GumHeapApiList * heap_apis, GumSanityOutputFunc func, gpointer user_data) { GumSanityChecker * checker; GumSanityCheckerPrivate * priv; checker = (GumSanityChecker *) gum_malloc0 (sizeof (GumSanityChecker) + sizeof (GumSanityCheckerPrivate)); checker->priv = (GumSanityCheckerPrivate *) (checker + 1); priv = checker->priv; priv->heap_apis = gum_heap_api_list_copy (heap_apis); priv->output = func; priv->output_user_data = user_data; priv->backtrace_block_size = 0; priv->front_alignment_granularity = 1; return checker; }