From f89fa72199135a473c5637fbfcad530c75c8fe84 Mon Sep 17 00:00:00 2001
From: "s.zharko@gsi.de" <s.zharko@gsi.de>
Date: Fri, 21 Jul 2023 15:29:18 +0200
Subject: [PATCH] QA checker: memory leak fixes

---
 core/qa/checker/CbmQaCheckerFileHandler.cxx   | 11 ++++++++++-
 core/qa/checker/CbmQaCheckerObjectHandler.cxx | 10 +++++++++-
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/core/qa/checker/CbmQaCheckerFileHandler.cxx b/core/qa/checker/CbmQaCheckerFileHandler.cxx
index 75c8d0cd97..93c46c396a 100644
--- a/core/qa/checker/CbmQaCheckerFileHandler.cxx
+++ b/core/qa/checker/CbmQaCheckerFileHandler.cxx
@@ -160,9 +160,18 @@ void FileHandler::Process(Option_t* opt)
       for (int iVer = 0; iVer < nVersions; ++iVer) {
         if (fpObjDB->GetCmpResult(fDatasetID, fFileID, iObj, iVer)) { areDifferent = true; }
       }
-      if (areDifferent) { pObjHandler->CreateCanvases(); }
+      if (true || areDifferent) { pObjHandler->CreateCanvases(); }
     }
     pObjHandler->Write();
+
+    // Clean memory
+    for (auto* pObj: vpObjects) {
+      if (pObj) {
+        delete pObj;
+        pObj = nullptr;
+      }
+    }
+
   }  // iObj
 }
 
diff --git a/core/qa/checker/CbmQaCheckerObjectHandler.cxx b/core/qa/checker/CbmQaCheckerObjectHandler.cxx
index ae1f545e41..180f5e59f3 100644
--- a/core/qa/checker/CbmQaCheckerObjectHandler.cxx
+++ b/core/qa/checker/CbmQaCheckerObjectHandler.cxx
@@ -30,7 +30,15 @@ ObjectHandler::ObjectHandler(int iObject, int iFile, int iDataset, const char* o
 
 // ---------------------------------------------------------------------------------------------------------------------
 //
-ObjectHandler::~ObjectHandler() {}
+ObjectHandler::~ObjectHandler() 
+{
+  for (auto* pObj: fvpObjects) {
+    if (pObj) {
+      delete pObj;
+      pObj = nullptr;
+    }
+  }
+}
 
 // ---------------------------------------------------------------------------------------------------------------------
 //
-- 
GitLab