From a5424d210649c4d0143a0e62bdfb9ed0729c86b9 Mon Sep 17 00:00:00 2001
From: James Beacham <j.beacham@cern.ch>
Date: Thu, 15 Nov 2018 13:39:35 +0000
Subject: [PATCH] Merge branch 'fix_ATLASSIM-3901' into '21.0'

Fixing resource leak in ISF_FastCaloSimEvent (ATLASSIM-3901)

See merge request atlas/athena!15904

(cherry picked from commit b5e4997a1b375ef0d25fc9e0042245d3b1f5d8f0)

b17a5d0c deleting pointer
---
 .../python/iconfTool/gui/__init__.py                   |  0
 .../python/iconfTool/utils/__init__.py                 |  0
 .../src/TFCSEnergyBinParametrization.cxx               | 10 ++++++----
 3 files changed, 6 insertions(+), 4 deletions(-)
 mode change 100755 => 100644 Control/AthenaConfiguration/python/iconfTool/gui/__init__.py
 mode change 100755 => 100644 Control/AthenaConfiguration/python/iconfTool/utils/__init__.py

diff --git a/Control/AthenaConfiguration/python/iconfTool/gui/__init__.py b/Control/AthenaConfiguration/python/iconfTool/gui/__init__.py
old mode 100755
new mode 100644
diff --git a/Control/AthenaConfiguration/python/iconfTool/utils/__init__.py b/Control/AthenaConfiguration/python/iconfTool/utils/__init__.py
old mode 100755
new mode 100644
diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSEnergyBinParametrization.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSEnergyBinParametrization.cxx
index 2ec25babf36..5f1156e264d 100644
--- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSEnergyBinParametrization.cxx
+++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimEvent/src/TFCSEnergyBinParametrization.cxx
@@ -85,14 +85,14 @@ void TFCSEnergyBinParametrization::load_pdgid_Ekin_bin_probability_from_file(int
 {
   add_pdgid(id);
   
-  float* prob;
+  float* prob = nullptr;
   
   file->cd();
   TVectorF* pcabinprobvector=(TVectorF*)gDirectory->Get(prob_object_name.c_str());
   
   if(!pcabinprobvector)
   {
-   ATH_MSG_INFO("TFCSEnergyBinParametrization::"<<prob_object_name<<" is null. Using equal PCA probabilities.");
+   ATH_MSG_INFO("TFCSEnergyBinParametrization::load_pdgid_Ekin_bin_probability_from_file(): "<<prob_object_name<<" is null. Using equal PCA probabilities.");
    
    prob=new float[m_pdgid_Ebin_probability[id].size()];
    
@@ -109,8 +109,8 @@ void TFCSEnergyBinParametrization::load_pdgid_Ekin_bin_probability_from_file(int
   {
    if((unsigned int)pcabinprobvector->GetNoElements()!=m_pdgid_Ebin_probability[id].size())
    {
-    ATH_MSG_ERROR("TFCSEnergyBinParametrization::set_pdgid_Ekin_bin_probability(): size of prob array does not match! in.size()="<<pcabinprobvector->GetNoElements()<<" instance="<<m_pdgid_Ebin_probability[id].size());
-    return;
+     ATH_MSG_ERROR("TFCSEnergyBinParametrization::load_pdgid_Ekin_bin_probability_from_file(): size of prob array does not match! in.size()=" << pcabinprobvector->GetNoElements() << " instance=" << m_pdgid_Ebin_probability[id].size());
+     return;
    }
    
    prob=pcabinprobvector->GetMatrixArray();
@@ -125,6 +125,8 @@ void TFCSEnergyBinParametrization::load_pdgid_Ekin_bin_probability_from_file(int
     p+=prob[iEbin]/ptot;
     m_pdgid_Ebin_probability[id][iEbin]=p;
   }
+
+  if(prob) delete prob; 
   
 }
 
-- 
GitLab