X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/78ad8111935dd39520e2cbae135e042817d78583..e0220fb23d7a1a52b3925f3fcba8e77d4f5abfc6:/src/mc/mc_snapshot.cpp?ds=inline diff --git a/src/mc/mc_snapshot.cpp b/src/mc/mc_snapshot.cpp index 345e23b23d..cd0ffaad6e 100644 --- a/src/mc/mc_snapshot.cpp +++ b/src/mc/mc_snapshot.cpp @@ -187,8 +187,15 @@ const void* Snapshot::read_bytes(void* buffer, std::size_t size, AddressSpace::ReadMode mode) { mc_mem_region_t region = mc_get_snapshot_region((void*)address, this, process_index); - if (region) - return MC_region_read(region, buffer, (void*)address, size); + if (region) { + const void* res = MC_region_read(region, buffer, (void*)address, size); + if (buffer == res || mode == AddressSpace::Lazy) + return res; + else { + memcpy(buffer, res, size); + return buffer; + } + } else return MC_process_read(this->process, mode, buffer, (void*)address, size, process_index); }