X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/eb284828d592ce39bd4b96f084d7cce1d074d4b1..aacddcb23a4ddc3ac099fb874fc7698b5f01b4cb:/src/xbt/mmalloc/mm_legacy.c diff --git a/src/xbt/mmalloc/mm_legacy.c b/src/xbt/mmalloc/mm_legacy.c index f520762bac..1415ad6f64 100644 --- a/src/xbt/mmalloc/mm_legacy.c +++ b/src/xbt/mmalloc/mm_legacy.c @@ -13,6 +13,13 @@ 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 + descriptor. This allows mmalloc() to provide + backwards compatibility with the non-mmap'd version. */ +struct mdesc *__mmalloc_default_mdp; + + static void *__mmalloc_current_heap = NULL; /* The heap we are currently using. */ #include "xbt_modinter.h" @@ -177,54 +184,13 @@ int mmalloc_compare_heap(void *h1, void *h2, void *std_heap_addr){ /* Heapstats */ - int errors = 0; - - struct mstats ms1 = mmstats(h1); - struct mstats ms2 = mmstats(h2); - - if(ms1.chunks_used != ms2.chunks_used){ - if(XBT_LOG_ISENABLED(xbt_mm_legacy, xbt_log_priority_debug)){ - XBT_DEBUG("Different chunks allocated by the user : %zu - %zu", ms1.chunks_used, ms2.chunks_used); - errors++; - }else{ - return 1; - } - } - - if(ms1.bytes_used != ms2.bytes_used){ - if(XBT_LOG_ISENABLED(xbt_mm_legacy, xbt_log_priority_debug)){ - XBT_DEBUG("Different byte total of user-allocated chunks : %zu - %zu", ms1.bytes_used, ms2.bytes_used); - errors++; - }else{ - return 1; - } - } - - if(ms1.bytes_free != ms2.bytes_free){ - if(XBT_LOG_ISENABLED(xbt_mm_legacy, xbt_log_priority_debug)){ - XBT_DEBUG("Different byte total of chunks in the free list : %zu - %zu", ms1.bytes_free, ms2.bytes_free); - errors++; - }else{ - return 1; - } - } - - if(ms1.chunks_free != ms2.chunks_free){ - if(XBT_LOG_ISENABLED(xbt_mm_legacy, xbt_log_priority_debug)){ - XBT_DEBUG("Different chunks in the free list : %zu - %zu", ms1.chunks_free, ms2.chunks_free); - errors++; - }else{ - return 1; - } - } - struct mdesc *mdp1, *mdp2; mdp1 = MD_TO_MDP(h1); mdp2 = MD_TO_MDP(h2); - int res = mmalloc_compare_mdesc(mdp1, mdp2, std_heap_addr); + int errors = mmalloc_compare_mdesc(mdp1, mdp2, std_heap_addr); - return ((errors + res ) > 0); + return (errors > 0); } @@ -345,16 +311,7 @@ int mmalloc_compare_mdesc(struct mdesc *mdp1, struct mdesc *mdp2, void *std_heap } } - if(mdp1->saved_errno != mdp2->saved_errno){ - if(XBT_LOG_ISENABLED(xbt_mm_legacy, xbt_log_priority_debug)){ - XBT_DEBUG("Different errno"); - errors++; - }else{ - return 1; - } - } - - if(mdp1->version != mdp2->version){ + if(mdp1->version != mdp2->version){ if(XBT_LOG_ISENABLED(xbt_mm_legacy, xbt_log_priority_debug)){ XBT_DEBUG("Different version of the mmalloc package"); errors++;