Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Convert enum smpi_process_state to enum class.
[simgrid.git] / src / mc / mc_snapshot.cpp
index 7823e43..27acf54 100644 (file)
@@ -20,8 +20,6 @@
 #include "src/mc/mc_private.hpp"
 #include "src/mc/mc_snapshot.hpp"
 
-extern "C" {
-
 /** @brief Find the snapshoted region from a pointer
  *
  *  @param addr     Pointer
@@ -121,10 +119,12 @@ int MC_snapshot_region_memcmp(
   // Using alloca() for large allocations may trigger stack overflow:
   // use malloc if the buffer is too big.
   bool stack_alloc = size < 64;
-  const bool region1_need_buffer = region1==nullptr || region1->storage_type()==simgrid::mc::StorageType::Flat;
-  const bool region2_need_buffer = region2==nullptr || region2->storage_type()==simgrid::mc::StorageType::Flat;
-  void* buffer1a                 = region1_need_buffer ? nullptr : stack_alloc ? alloca(size) : ::operator new(size);
-  void* buffer2a                 = region2_need_buffer ? nullptr : stack_alloc ? alloca(size) : ::operator new(size);
+  void* buffer1a   = nullptr;
+  void* buffer2a   = nullptr;
+  if (region1 != nullptr && region1->storage_type() != simgrid::mc::StorageType::Flat)
+    buffer1a = stack_alloc ? alloca(size) : ::operator new(size);
+  if (region2 != nullptr && region2->storage_type() != simgrid::mc::StorageType::Flat)
+    buffer2a = stack_alloc ? alloca(size) : ::operator new(size);
   const void* buffer1 = MC_region_read(region1, buffer1a, addr1, size);
   const void* buffer2 = MC_region_read(region2, buffer2a, addr2, size);
   int res;
@@ -139,8 +139,6 @@ int MC_snapshot_region_memcmp(
   return res;
 }
 
-} // extern "C"
-
 namespace simgrid {
 namespace mc {
 
@@ -184,6 +182,7 @@ const void* Snapshot::read_bytes(void* buffer, std::size_t size,
 
 #include <sys/mman.h>
 
+#include "src/mc/mc_config.hpp"
 #include "src/mc/mc_mmu.hpp"
 #include "src/mc/mc_private.hpp"
 #include "src/mc/mc_snapshot.hpp"