Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
plug a memleak
[simgrid.git] / src / surf / VirtualMachineImpl.cpp
index be31926..8ad7f58 100644 (file)
@@ -40,11 +40,6 @@ simgrid::xbt::signal<void(simgrid::surf::VirtualMachineImpl*)> onVmStateChange;
 
 std::deque<VirtualMachineImpl*> VirtualMachineImpl::allVms_;
 
-s4u::Host* VMModel::createVM(const char* name, sg_host_t host_PM)
-{
-  return new s4u::VirtualMachine(name, host_PM);
-}
-
 /* In the real world, processes on the guest operating system will be somewhat degraded due to virtualization overhead.
  * The total CPU share these processes get is smaller than that of the VM process gets on a host operating system. */
 // const double virt_overhead = 0.95;
@@ -144,6 +139,8 @@ VirtualMachineImpl::~VirtualMachineImpl()
   /* Free the cpu_action of the VM. */
   XBT_ATTRIB_UNUSED int ret = action_->unref();
   xbt_assert(ret == 1, "Bug: some resource still remains");
+
+  delete piface_->pimpl_cpu;
 }
 
 e_surf_vm_state_t VirtualMachineImpl::getState()
@@ -182,13 +179,13 @@ void VirtualMachineImpl::restore()
 }
 
 /** @brief returns the physical machine on which the VM is running **/
-sg_host_t VirtualMachineImpl::getPm()
+s4u::Host* VirtualMachineImpl::getPm()
 {
   return hostPM_;
 }
 
 /* Update the physical host of the given VM */
-void VirtualMachineImpl::migrate(sg_host_t host_dest)
+void VirtualMachineImpl::migrate(s4u::Host* host_dest)
 {
   const char* vm_name     = piface_->name().c_str();
   const char* pm_name_src = hostPM_->name().c_str();