/* Redefine the classical malloc/free/realloc functions so that they fit well in the mmalloc framework */
#include "mmprivate.h"
-#include "gras_config.h"
+#include "internal_config.h"
#include <math.h>
-XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_mm_legacy, xbt,
- "Logging specific to mm_legacy in mmalloc");
/* The mmalloc() package can use a single implicit malloc descriptor
for mmalloc/mrealloc/mfree operations which do not supply an explicit
__mmalloc_current_heap = new_heap;
}
-#ifdef MMALLOC_WANT_OVERIDE_LEGACY
+#ifdef MMALLOC_WANT_OVERRIDE_LEGACY
void *malloc(size_t n)
{
xbt_mheap_t mdp = __mmalloc_current_heap ?: (xbt_mheap_t) mmalloc_preinit();
void free(void *p)
{
- xbt_mheap_t mdp = __mmalloc_current_heap ?: (xbt_mheap_t) mmalloc_preinit();
+ if (p != NULL) {
+ xbt_mheap_t mdp = __mmalloc_current_heap ?: (xbt_mheap_t) mmalloc_preinit();
- LOCK(mdp);
- mfree(mdp, p);
- UNLOCK(mdp);
+ LOCK(mdp);
+ mfree(mdp, p);
+ UNLOCK(mdp);
+ }
}
#endif