From: marian Date: Sun, 11 May 2008 19:31:16 +0000 (+0000) Subject: Removed Memory leak X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=08825fb427524c560e9f8bf446b4675afa002e54 Removed Memory leak Instead of TObjArray TIterator use simple loop (Marian) --- diff --git a/TPC/AliTPCAnalysisTaskcalib.cxx b/TPC/AliTPCAnalysisTaskcalib.cxx index 02866fc9684..b35e853c2fb 100644 --- a/TPC/AliTPCAnalysisTaskcalib.cxx +++ b/TPC/AliTPCAnalysisTaskcalib.cxx @@ -42,12 +42,14 @@ AliTPCAnalysisTaskcalib::AliTPCAnalysisTaskcalib(const char *name) // DefineInput(0, TChain::Class()); DefineOutput(0, TObjArray::Class()); + fCalibJobs.SetOwner(kTRUE); } AliTPCAnalysisTaskcalib::~AliTPCAnalysisTaskcalib() { // // destructor // + fCalibJobs.Delete(); } void AliTPCAnalysisTaskcalib::Exec(Option_t *) { @@ -104,28 +106,38 @@ void AliTPCAnalysisTaskcalib::CreateOutputObjects() { } void AliTPCAnalysisTaskcalib::Terminate(Option_t */*option*/) { // + // Terminate // - // - TIterator *i=fCalibJobs.MakeIterator(); - AliTPCcalibBase *job; - while ((job=dynamic_cast(i->Next()))){ - job->Terminate(); + AliTPCcalibBase *job=0; + Int_t njobs = fCalibJobs.GetEntriesFast(); + for (Int_t i=0;iTerminate(); } } -// we could have been living inside a master class... void AliTPCAnalysisTaskcalib::Process(AliESDEvent *event) { - TIterator *i=fCalibJobs.MakeIterator(); - AliTPCcalibBase *job; - while ((job=dynamic_cast(i->Next()))) - job->Process(event); + // + // Process ESD event + // + AliTPCcalibBase *job=0; + Int_t njobs = fCalibJobs.GetEntriesFast(); + for (Int_t i=0;iProcess(event); + } } void AliTPCAnalysisTaskcalib::Process(AliTPCseed *track) { - TIterator *i=fCalibJobs.MakeIterator(); - AliTPCcalibBase *job; - while ((job=dynamic_cast(i->Next()))) - job->Process(track); + // + // Process TPC track + // + AliTPCcalibBase *job=0; + Int_t njobs = fCalibJobs.GetEntriesFast(); + for (Int_t i=0;iProcess(track); + } } Long64_t AliTPCAnalysisTaskcalib::Merge(TCollection *li) { @@ -138,8 +150,13 @@ Long64_t AliTPCAnalysisTaskcalib::Merge(TCollection *li) { } void AliTPCAnalysisTaskcalib::Analyze() { - TIterator *i=fCalibJobs.MakeIterator(); - AliTPCcalibBase *job; - while ((job=dynamic_cast(i->Next()))) - job->Analyze(); + // + // Analyze the content of the task + // + AliTPCcalibBase *job=0; + Int_t njobs = fCalibJobs.GetEntriesFast(); + for (Int_t i=0;iAnalyze(); + } }