From 242e6536a01be10c3d9f7aad8a803f3060cfa71e Mon Sep 17 00:00:00 2001 From: richterm Date: Fri, 9 May 2008 21:21:39 +0000 Subject: [PATCH] hunting memory leaks --- HLT/BASE/HOMER/AliHLTHOMERReader.cxx | 10 ++++++---- HLT/rec/AliHLTEsdManager.cxx | 9 +++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/HLT/BASE/HOMER/AliHLTHOMERReader.cxx b/HLT/BASE/HOMER/AliHLTHOMERReader.cxx index 180832c44da..69edde341aa 100644 --- a/HLT/BASE/HOMER/AliHLTHOMERReader.cxx +++ b/HLT/BASE/HOMER/AliHLTHOMERReader.cxx @@ -357,6 +357,9 @@ AliHLTHOMERReader::~AliHLTHOMERReader() // see header file for class documentation ReleaseCurrentEvent(); FreeDataSources(); + + if (fDataSources) + delete [] fDataSources; } int AliHLTHOMERReader::ReadNextEvent() @@ -750,7 +753,10 @@ void AliHLTHOMERReader::FreeDataSources() FreeTCPDataSource( fDataSources[n] ); else if ( fDataSources[n].fType == kShm ) FreeShmDataSource( fDataSources[n] ); + if ( fDataSources[n].fHostname ) + delete [] fDataSources[n].fHostname; } + fDataSourceCnt=0; } int AliHLTHOMERReader::FreeShmDataSource( DataSource& source ) @@ -760,8 +766,6 @@ int AliHLTHOMERReader::FreeShmDataSource( DataSource& source ) shmdt( source.fShmPtr ); // if ( source.fShmID != -1 ) // shmctl( source.fShmID, IPC_RMID, NULL ); - if ( source.fHostname ) - delete [] source.fHostname; return 0; } @@ -770,8 +774,6 @@ int AliHLTHOMERReader::FreeTCPDataSource( DataSource& source ) // see header file for class documentation if ( source.fTCPConnection ) close( source.fTCPConnection ); - if ( source.fHostname ) - delete [] source.fHostname; return 0; } diff --git a/HLT/rec/AliHLTEsdManager.cxx b/HLT/rec/AliHLTEsdManager.cxx index b97e27ec88e..8ce85f9834b 100644 --- a/HLT/rec/AliHLTEsdManager.cxx +++ b/HLT/rec/AliHLTEsdManager.cxx @@ -145,6 +145,7 @@ int AliHLTEsdManager::WriteESD(const AliHLTUInt8_t* pBuffer, AliHLTUInt32_t size } if (pTree) { // ESD has been created and must be cleaned up + pESD->Reset(); delete pESD; pESD=NULL; } @@ -229,6 +230,14 @@ AliHLTEsdManager::AliHLTEsdListEntry::AliHLTEsdListEntry(AliHLTComponentDataType AliHLTEsdManager::AliHLTEsdListEntry::~AliHLTEsdListEntry() { // see header file for class documentation + if (fpEsd) delete fpEsd; + fpEsd=NULL; + + if (fpTree) delete fpTree; + fpTree=NULL; + + if (fpFile) delete fpFile; + fpFile=NULL; } bool AliHLTEsdManager::AliHLTEsdListEntry::operator==(AliHLTComponentDataType dt) const -- 2.43.0