]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - OADB/AliOADBPhysicsSelection.cxx
Coverity fixes 16578 16568 566 565
[u/mrichter/AliRoot.git] / OADB / AliOADBPhysicsSelection.cxx
index ea4cb9ba7082c1d2817056fa58a3e6d54e31cbca..8cff8c783bb2e0fae4eafdf68097c5195cfacad6 100644 (file)
@@ -188,13 +188,20 @@ void AliOADBPhysicsSelection::Browse(TBrowser *b)
    // Browse this object.
    // If b=0, there is no Browse call TObject::Browse(0) instead.
    //         This means TObject::Inspect() will be invoked indirectly
-
-  TFolder  ** bitFolders = new TFolder*[fNtriggerBits];
+  static TFolder  ** bitFolders = 0;
+  if(!bitFolders) {
+    bitFolders = new TFolder*[fNtriggerBits];
+    for(UInt_t ibit = 0; ibit < fNtriggerBits; ibit++){
+      bitFolders[ibit] = 0;
+    }
+    
+  }
 
   if (b) {
     for(UInt_t ibit = 0; ibit < fNtriggerBits; ibit++){
-      //      if(bitFolders[ibit]) delete bitFolders[ibit];
+      if(bitFolders[ibit]) delete bitFolders[ibit];
       bitFolders[ibit] = new TFolder (Form("Bit %2.2d", ibit), "Trigger bit folder");
+      bitFolders[ibit]->SetOwner(); // Delete also the TObjString when deleting the folder
       for(UInt_t ilogic = 0; ilogic < fNtriggerLogics; ilogic++){
        if(GetHardwareTrigger(ilogic) != "" ||  GetOfflineTrigger(ilogic) != "")  {
          bitFolders[ibit]->Add(new TObjString(Form("Hardware Trig    [*%d][%s]",ilogic,GetHardwareTrigger(ilogic).Data())));
@@ -209,6 +216,7 @@ void AliOADBPhysicsSelection::Browse(TBrowser *b)
        bitFolders[ibit]->Add(new TObjString(Form("Collision Class  [%s] [%s]", coll->String().Data(), 
                                                  GetBeamSide(coll->String().Data()).Data())));
       }
+      delete itColl;
 
       TIterator *itBG = fBGTrigClasses[ibit]->MakeIterator();
       TObjString * bg = 0;
@@ -216,7 +224,7 @@ void AliOADBPhysicsSelection::Browse(TBrowser *b)
        bitFolders[ibit]->Add(new TObjString(Form("Background Class [%s] [%s]", bg->String().Data(), 
                                                  GetBeamSide(bg->String().Data()).Data())));
       }
-
+      delete itBG;
 
       b->Add(bitFolders[ibit]);
 
@@ -226,7 +234,7 @@ void AliOADBPhysicsSelection::Browse(TBrowser *b)
       TObject::Browse(b);
 }
 
-const UInt_t AliOADBPhysicsSelection::GetActiveBit(UInt_t mask) {
+UInt_t AliOADBPhysicsSelection::GetActiveBit(UInt_t mask) {
   // Returns the active bit index in the mask
   // Assumes only one bit is on.
   // If more than one bit is lit, prints an error and returns the first.