memory leak https://savannah.cern.ch/bugs/index.php?87435 finally fixed
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 21 Oct 2011 13:03:14 +0000 (13:03 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 21 Oct 2011 13:03:14 +0000 (13:03 +0000)
HLT/EMCAL/AliHLTEMCALAgent.cxx
HLT/EMCAL/AliHLTEMCALMapper.cxx

index 37f7496..729c535 100644 (file)
@@ -1,3 +1,4 @@
+// $Id$
 
 //**************************************************************************
 //* This file is property of and copyright by the ALICE HLT Project        * 
@@ -206,9 +207,11 @@ int AliHLTEMCALAgent::GetHandlerDescription(AliHLTComponentDataType dt,
                                             AliHLTOUTHandlerDesc& desc) const
 {
     // see header file for class documentation
-    
+
+    // FIXME: there is memory allocated in the mapper, this happens for every event
+    // and is time consuming, think about initializing the mappers only once, or make
+    // the mapper class more flexible to handle more than one specification
     AliHLTEMCALMapper mapper(spec);
-    mapper.InitDDLSpecificationMapping();
     
     // raw data blocks to be fed into offline reconstruction
     if (dt==(kAliHLTDataTypeDDLRaw|kAliHLTDataOriginEMCAL)) 
index 5186524..ac0a285 100644 (file)
@@ -1,3 +1,5 @@
+// $Id$
+
 /**************************************************************************
  * This file is property of and copyright by the Experimental Nuclear     *
  * Physics Group, Dep. of Physics                                         *
@@ -125,6 +127,7 @@ AliHLTEMCALMapper::InitAltroMapping(const unsigned long specification )
 void 
 AliHLTEMCALMapper::InitDDLSpecificationMapping()
 {
+  if (fSpecificationMapPtr) delete [] fSpecificationMapPtr;
   fSpecificationMapPtr = new fDDLSpecificationMap[NMODULES*NRCUSPERMODULE];
   
   for(Int_t ddl = 0; ddl < NMODULES*NRCUSPERMODULE; ddl++)