Beispiel #1
0
void *malloc(size_t n)
{
  if (!mm_initialized) {
    if (mm_initializing)
      return mm_fake_malloc(n);
    mm_legacy_constructor();
  }

  if (!__malloc_use_mmalloc) {
    return mm_real_malloc(n);
  }

  xbt_mheap_t mdp = GET_HEAP();
  if (!mdp)
    return NULL;

  LOCK(mdp);
  void *ret = mmalloc(mdp, n);
  UNLOCK(mdp);
  return ret;
}
Beispiel #2
0
static void* mm_fake_realloc(void *p, size_t s)
{
  return mm_fake_malloc(s);
}
Beispiel #3
0
static void* mm_fake_calloc(size_t nmemb, size_t size)
{
  // This is fresh .bss data, we don't need to clear it:
  size_t n = nmemb * size;
  return mm_fake_malloc(n);
}
Beispiel #4
0
static void* mm_fake_realloc(XBT_ATTRIB_UNUSED void* p, size_t s)
{
  return mm_fake_malloc(s);
}