From 53cb9effdd93f92180d4f99475a8629892811be3 Mon Sep 17 00:00:00 2001 From: "le.truong" <le.truong@telecom-paris.fr> Date: Fri, 20 Nov 2020 18:07:42 +0100 Subject: [PATCH] Fix memory leak problem --- simulators/c++2/src_simulator/app/TMLTask.cpp | 2 ++ simulators/c++2/src_simulator/sim/SimComponents.cpp | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/simulators/c++2/src_simulator/app/TMLTask.cpp b/simulators/c++2/src_simulator/app/TMLTask.cpp index 92196ad762..a2361081f3 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 948b32b0af..8ebc16f1a1 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); -- GitLab