-static void add_region(int index, simgrid::mc::Snapshot* snapshot, simgrid::mc::RegionType type,
- simgrid::mc::ObjectInformation* object_info, void* start_addr, void* permanent_addr,
- std::size_t size)
-{
- if (type == simgrid::mc::RegionType::Data)
- xbt_assert(object_info, "Missing object info for object.");
- else if (type == simgrid::mc::RegionType::Heap)
- xbt_assert(not object_info, "Unexpected object info for heap region.");
-
- simgrid::mc::RegionSnapshot region;
-#if HAVE_SMPI
- const bool privatization_aware = object_info && mc_model_checker->process().privatized(*object_info);
- if (privatization_aware && MC_smpi_process_count())
- region = simgrid::mc::privatized_region(type, start_addr, permanent_addr, size);
- else
-#endif
- region = simgrid::mc::region(type, start_addr, permanent_addr, size);
-
- region.object_info(object_info);
- snapshot->snapshot_regions[index] =
- std::unique_ptr<simgrid::mc::RegionSnapshot>(new simgrid::mc::RegionSnapshot(std::move(region)));
-}
-