Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Use std::unique_ptr for Process::heap
[simgrid.git] / src / mc / Process.hpp
index 819e8ec..f6b941a 100644 (file)
 #include <xbt/mmalloc.h>
 
 #ifdef HAVE_MC
-#include "xbt/mmalloc/mmprivate.h"
+#include "src/xbt/mmalloc/mmprivate.h"
 #endif
 
 #include <simgrid/simix.h>
-#include "simix/popping_private.h"
-#include "simix/smx_private.h"
+#include "src/simix/popping_private.h"
+#include "src/simix/smx_private.h"
 
 #include "mc_forward.hpp"
 #include "mc_base.h"
@@ -58,6 +58,11 @@ public:
   Process(pid_t pid, int sockfd);
   ~Process();
 
+  Process(Process const&) = delete;
+  Process(Process &&) = delete;
+  Process& operator=(Process const&) = delete;
+  Process& operator=(Process &&) = delete;
+
   // Read memory:
   const void* read_bytes(void* buffer, std::size_t size,
     remote_ptr<void> address, int process_index = ProcessIndexAny,
@@ -89,7 +94,7 @@ public:
   {
     if (!(this->cache_flags & MC_PROCESS_CACHE_FLAG_HEAP))
       this->refresh_heap();
-    return this->heap;
+    return this->heap.get();
   }
   malloc_info* get_malloc_info()
   {
@@ -195,7 +200,7 @@ public: // Copies of MCed SMX data structures
    *  This is not used if the process is the current one:
    *  use `get_heap_info()` in order to use it.
    */
-   xbt_mheap_t heap;
+   std::unique_ptr<s_xbt_mheap_t> heap;
 
   /** Copy of the allocation info structure
    *