X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/22e6546d2c6f14864cc93c4ed1470d8e8c1e2d95..a9113d6f217e32068b356fa249923e0c9be5a5b7:/src/mc/compare.cpp diff --git a/src/mc/compare.cpp b/src/mc/compare.cpp index 0e3887d570..4cdf76a96c 100644 --- a/src/mc/compare.cpp +++ b/src/mc/compare.cpp @@ -122,7 +122,8 @@ namespace { * * It can hash pairs: the standard hash currently doesn't include this. */ -template struct hash : public std::hash {}; +template class hash : public std::hash { +}; template class hash> { public: @@ -343,9 +344,9 @@ int mmalloc_compare_heap( // This is in snapshot do not use them directly: const malloc_info* heapinfos1 = snapshot1->read( - (std::uint64_t)heapinfo_address, simgrid::mc::ProcessIndexMissing); + RemotePtr((std::uint64_t)heapinfo_address), simgrid::mc::ProcessIndexMissing); const malloc_info* heapinfos2 = snapshot2->read( - (std::uint64_t)heapinfo_address, simgrid::mc::ProcessIndexMissing); + RemotePtr((std::uint64_t)heapinfo_address), simgrid::mc::ProcessIndexMissing); while (i1 < state.heaplimit) { @@ -1031,14 +1032,12 @@ int compare_heap_area(simgrid::mc::StateComparator& state, int process_index, return 0; } - if (type_size != -1) { - if (type_size != (ssize_t) heapinfo1->busy_block.busy_size - && type_size != (ssize_t) heapinfo2->busy_block.busy_size - && (type->name.empty() || type->name == "struct s_smx_context")) { - if (match_pairs) - state.match_equals(previous); - return -1; - } + if (type_size != -1 && type_size != (ssize_t)heapinfo1->busy_block.busy_size && + type_size != (ssize_t)heapinfo2->busy_block.busy_size && + (type->name.empty() || type->name == "struct s_smx_context")) { + if (match_pairs) + state.match_equals(previous); + return -1; } if (heapinfo1->busy_block.size != heapinfo2->busy_block.size) @@ -1098,12 +1097,11 @@ int compare_heap_area(simgrid::mc::StateComparator& state, int process_index, } // Check if the blocks are already matched together: - if (state.equals_to1_(block1, frag1).valid_ && state.equals_to2_(block2, frag2).valid_) { - if (offset1==offset2 && state.fragmentsEqual(block1, frag1, block2, frag2)) { - if (match_pairs) - state.match_equals(previous); - return 0; - } + if (state.equals_to1_(block1, frag1).valid_ && state.equals_to2_(block2, frag2).valid_ && offset1 == offset2 && + state.fragmentsEqual(block1, frag1, block2, frag2)) { + if (match_pairs) + state.match_equals(previous); + return 0; } // Compare the size of both fragments: if (heapinfo1->busy_frag.frag_size[frag1] != heapinfo2->busy_frag.frag_size[frag2]) {