std_heap = mmalloc_get_default_md();
xbt_assert(std_heap != NULL);
-#if defined HAVE_GNU_LD && !defined MMALLOC_WANT_OVERRIDE_LEGACY
+#if 0 && defined HAVE_GNU_LD && !defined MMALLOC_WANT_OVERRIDE_LEGACY
/* use the system malloc for the model-checker data */
mc_heap = NULL;
#else
#ifdef MMALLOC_WANT_OVERRIDE_LEGACY
-#ifdef HAVE_GNU_LD
+#if 0 && defined(HAVE_GNU_LD)
#undef _GNU_SOURCE
#define _GNU_SOURCE 1
real_realloc = (void * (*) (void*,size_t)) dlsym(RTLD_NEXT, "realloc");
real_free = (void * (*) (void*)) dlsym(RTLD_NEXT, "free");
__mmalloc_current_heap = __mmalloc_default_mdp;
-}
+}
/* Hello pimple!
* DL needs some memory while resolving the malloc symbol, that is somehow problematic
void *ret = mmalloc(mdp, n);
UNLOCK(mdp);
+
return ret;
}
LOCK(mdp);
void *ret = mmalloc(mdp, nmemb*size);
UNLOCK(mdp);
- memset(ret, 0, nmemb * size);
+ // This was already done in the callee:
+ if(!(mdp->options & XBT_MHEAP_OPTION_MEMSET)) {
+ memset(ret, 0, nmemb * size);
+ }
return ret;
}
}
#endif /* NO GNU_LD */
#endif /* WANT_MALLOC_OVERRIDE */
-
-
{
int res;
if (__mmalloc_default_mdp == NULL) {
+ if(!xbt_pagesize)
+ xbt_pagesize = getpagesize();
unsigned long mask = ~((unsigned long)xbt_pagesize - 1);
void *addr = (void*)(((unsigned long)sbrk(0) + HEAP_OFFSET) & mask);
__mmalloc_default_mdp = xbt_mheap_new_options(-1, addr, XBT_MHEAP_OPTION_MEMSET);
}
xbt_assert(__mmalloc_default_mdp != NULL);
-#if defined(HAVE_GNU_LD) && defined(MMALLOC_WANT_OVERRIDE_LEGACY)
+#if 0 && defined(HAVE_GNU_LD) && defined(MMALLOC_WANT_OVERRIDE_LEGACY)
mm_gnuld_legacy_init();
#endif