]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - OADB/AliOADBContainer.cxx
Coverity fix.
[u/mrichter/AliRoot.git] / OADB / AliOADBContainer.cxx
index 95511105e97d430b4fc29db2e2ca4f2a3f08c0b5..5344ab124b410ce456ebfdafaf9b061a91102caa 100644 (file)
 #include <TArrayI.h>
 #include <TFile.h>
 #include <TList.h>
+#include "TBrowser.h"
 
 ClassImp(AliOADBContainer);
 
 //______________________________________________________________________________
 AliOADBContainer::AliOADBContainer() : 
   TNamed(),
-  fArray(new TObjArray(100)),
-  fDefaultList(new TList()),
+  fArray(0),
+  fDefaultList(0),
   fLowerLimits(),
   fUpperLimits(),
   fEntries(0)
@@ -110,7 +111,7 @@ void AliOADBContainer::AppendObject(TObject* obj, Int_t lower, Int_t upper)
   Int_t index = HasOverlap(lower, upper);
   
   if (index != -1) {
-    AliFatal(Form("Ambiguos validity range (%5d) !\n", index));
+    AliFatal(Form("Ambiguos validity range (%5d, %5.5d-%5.5d) !\n", index,lower,upper));
     return;
   }
   //
@@ -178,7 +179,7 @@ void AliOADBContainer::UpdateObject(Int_t idx, TObject* obj, Int_t lower, Int_t
 }
     
  
-void  AliOADBContainer::AddDefaultObject(TNamed* obj)
+void  AliOADBContainer::AddDefaultObject(TObject* obj)
 {
   // Add a default object
   fDefaultList->Add(obj);
@@ -243,8 +244,9 @@ void AliOADBContainer::WriteToFile(char* fname) const
 {
   //
   // Write object to file
-  TFile* f = new TFile(fname, "recreate");
+  TFile* f = new TFile(fname, "update");
   Write();
+  f->Purge();
   f->Close();
 }
 
@@ -294,7 +296,7 @@ void AliOADBContainer::List()
 
 }
 
-Int_t AliOADBContainer::HasOverlap(Int_t lower, Int_t upper)
+Int_t AliOADBContainer::HasOverlap(Int_t lower, Int_t upper) const
 {
   //
   // Checks for overlpapping validity regions
@@ -307,3 +309,24 @@ Int_t AliOADBContainer::HasOverlap(Int_t lower, Int_t upper)
   }
   return (-1);
 }
+
+void AliOADBContainer::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
+
+
+  if (b) {
+    for (Int_t i = 0; i < fEntries; i++) {
+      b->Add(fArray->At(i),Form("%9.9d - %9.9d", fLowerLimits[i], fUpperLimits[i]));
+    }
+    TIter next(fDefaultList);
+    TObject* obj;
+    while((obj = next())) b->Add(obj);
+        
+  }     
+   else
+      TObject::Browse(b);
+}
+