From 0a06c8307e9a8c503b569bd9f086e9883dba5079 Mon Sep 17 00:00:00 2001 From: Paul Seyfert <pseyfert.mathphys@gmail.com> Date: Tue, 23 Oct 2018 23:41:21 +0200 Subject: [PATCH] [TMVA/BDT/IMT] fix memory leak --- tmva/tmva/src/DecisionTree.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tmva/tmva/src/DecisionTree.cxx b/tmva/tmva/src/DecisionTree.cxx index 9cd8d2e8022..a2b63660d9f 100644 --- a/tmva/tmva/src/DecisionTree.cxx +++ b/tmva/tmva/src/DecisionTree.cxx @@ -1498,7 +1498,7 @@ Double_t TMVA::DecisionTree::TrainNodeFast( const EventConstList & eventSample, nBins[ivar] = node->GetSampleMax(ivar) - node->GetSampleMin(ivar) + 1; } } - + cutValues[ivar] = new Double_t [nBins[ivar]]; } @@ -1855,15 +1855,15 @@ Double_t TMVA::DecisionTree::TrainNodeFast( const EventConstList & eventSample, // #### Now in TrainNodeInfo, but I got a malloc segfault when I tried to destruct arrays there. // #### So, I changed these from dynamic arrays to std::vector to fix this memory problem // #### so no need to destruct them anymore. I didn't see any performance drop as a result. - //for (UInt_t i=0; i<cNvars; i++) { + for (UInt_t i=0; i<cNvars; i++) { // delete [] nodeInfo.nSelS[i]; // delete [] nodeInfo.nSelB[i]; // delete [] nodeInfo.nSelS_unWeighted[i]; // delete [] nodeInfo.nSelB_unWeighted[i]; // delete [] nodeInfo.target[i]; // delete [] nodeInfo.target2[i]; - // delete [] cutValues[i]; - //} + delete [] cutValues[i]; + } //delete [] nodeInfo.nSelS; //delete [] nodeInfo.nSelB; //delete [] nodeInfo.nSelS_unWeighted; -- GitLab