[ROOT] memory leak

From: Aihong Tang (aihong@cnr.physics.kent.edu)
Date: Fri Jun 28 2002 - 04:19:31 MEST


Hi, Rooters:

The following piece of code has a memeory leak but I can not figure out 
the source of leaking, please advise. Thanks!
Aihong

=====================================================================

   TFile* newfile = new TFile(newfilename,"RECREATE");
   TFile* oldfile1 = new  TFile(((TObjString *)(toBeAddedFiles->At(0)))->GetName(),"READ");
   TList* list = oldfile1->GetListOfKeys();
      TIter next(list);
      TKey* key;
      TObject* obj;
   while (key = (TKey*)next()) {
        obj = oldfile1->Get(key->GetName());
     if (!obj) return;
   if(obj->IsA() == TDirectory::Class()){
                        delete obj;
                         obj = NULL;
                         continue;
                 }
     TObject* newobj = obj->Clone();
        if (newobj->InheritsFrom( TH1::Class())) {
 for (int k=1; k<toBeAddedFiles->GetEntries(); k++){
          TFile* f =new TFile(((TObjString *)(toBeAddedFiles->At(k)))->GetName()
((TH1 *) newobj)->Add(((TH1 *)f->Get(key->GetName())));
         delete f;
        }
                 }
         newfile->cd();
        newobj->Write(key->GetName(),TObject::kOverwrite | 
TObject::kSingleKey);
       delete newobj;
   }
   gROOT->cd();
  delete key;
    newfile->Write();
    newfile->Close();

==========================================================



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:58 MET