X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d918db3ca7152c00113f2e072deca4614f97bb58..8b9990faccec68326f014f2823ecbf3a2e3006dc:/src/mc/compare.cpp diff --git a/src/mc/compare.cpp b/src/mc/compare.cpp index 4a0f4191b2..82c157ce10 100644 --- a/src/mc/compare.cpp +++ b/src/mc/compare.cpp @@ -10,6 +10,8 @@ #include "src/mc/mc_smx.hpp" #include "src/mc/sosp/Snapshot.hpp" +#include + XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_compare, xbt, "Logging specific to mc_compare in mc"); using simgrid::mc::remote; @@ -134,21 +136,9 @@ public: static ssize_t heap_comparison_ignore_size(const std::vector* ignore_list, const void* address) { - int start = 0; - int end = ignore_list->size() - 1; - - while (start <= end) { - unsigned int cursor = (start + end) / 2; - simgrid::mc::IgnoredHeapRegion const& region = (*ignore_list)[cursor]; - if (region.address == address) - return region.size; - if (region.address < address) - start = cursor + 1; - if (region.address > address) - end = cursor - 1; - } - - return -1; + auto pos = std::lower_bound(ignore_list->begin(), ignore_list->end(), address, + [](auto const& reg, auto const* addr) { return reg.address < addr; }); + return (pos != ignore_list->end() && pos->address == address) ? pos->size : -1; } static bool is_stack(const void *address)