X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/df00205b8db0067640f48bdb63426689aa80360f..2f531aa69f09fed380e2e212df5822874aab5e58:/src/mc/mc_ignore.cpp diff --git a/src/mc/mc_ignore.cpp b/src/mc/mc_ignore.cpp index d758c7f99a..debb2a4ac7 100644 --- a/src/mc/mc_ignore.cpp +++ b/src/mc/mc_ignore.cpp @@ -27,26 +27,23 @@ void MC_ignore_heap(void *address, size_t size) xbt_mheap_t heap = mmalloc_get_current_heap(); - s_mc_heap_ignore_region_t region; - memset(®ion, 0, sizeof(region)); - region.address = address; - region.size = size; - region.block = + s_mc_ignore_heap_message_t message; + message.type = MC_MESSAGE_IGNORE_HEAP; + message.address = address; + message.size = size; + message.block = ((char *) address - (char *) heap->heapbase) / BLOCKSIZE + 1; - if (heap->heapinfo[region.block].type == 0) { - region.fragment = -1; - heap->heapinfo[region.block].busy_block.ignore++; + if (heap->heapinfo[message.block].type == 0) { + message.fragment = -1; + heap->heapinfo[message.block].busy_block.ignore++; } else { - region.fragment = + message.fragment = ((uintptr_t) (ADDR2UINT(address) % (BLOCKSIZE))) >> - heap->heapinfo[region.block].type; - heap->heapinfo[region.block].busy_frag.ignore[region.fragment]++; + heap->heapinfo[message.block].type; + heap->heapinfo[message.block].busy_frag.ignore[message.fragment]++; } - s_mc_ignore_heap_message_t message; - message.type = MC_MESSAGE_IGNORE_HEAP; - message.region = region; if (MC_protocol_send(mc_client->fd, &message, sizeof(message))) xbt_die("Could not send ignored region to MCer"); }