diff --git a/simulators/c++2/src_simulator/app/TMLTask.cpp b/simulators/c++2/src_simulator/app/TMLTask.cpp index 92196ad7620e8829bf694872473dfa9ac382e5d2..a2361081f3230daca1e741ef00e989c49847f5d5 100755 --- a/simulators/c++2/src_simulator/app/TMLTask.cpp +++ b/simulators/c++2/src_simulator/app/TMLTask.cpp @@ -78,6 +78,8 @@ TMLTask::~TMLTask(){ } #endif if (_comment!=0) delete [] _comment; + if(_cpus != 0) delete[] _cpus; // free the allocation of cpu array + if(_fpgas != 0) delete[] _fpgas; // free the allocation of fpga array } std::string TMLTask::toShortString() const{ diff --git a/simulators/c++2/src_simulator/sim/SimComponents.cpp b/simulators/c++2/src_simulator/sim/SimComponents.cpp index 948b32b0afb2cd38c5c2aaf7ab5ce640baefcc29..8ebc16f1a1ed9da2ff0a1e9c510174acdbd4c2f9 100644 --- a/simulators/c++2/src_simulator/sim/SimComponents.cpp +++ b/simulators/c++2/src_simulator/sim/SimComponents.cpp @@ -71,9 +71,16 @@ SimComponents::~SimComponents(){ for(SerializableList::iterator i=_serList.begin(); i != _serList.end(); ++i){ delete (*i); } + for(SlaveList::iterator i=_slList.begin(); i != _slList.end(); ++i){ delete (*i); } + + for(TaskList::const_iterator i=_taskList.begin(); i != _taskList.end(); ++i){ + //free tasks before terminate simulator + delete (*i); + } + #ifdef EBRDD_ENABLED for(EBRDDList::iterator i=_ebrddList.begin(); i != _ebrddList.end(); ++i){ delete (*i);