Exemple #1
0
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;
}