Adding protections
authorlaphecet <laphecet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 6 Jan 2012 14:27:13 +0000 (14:27 +0000)
committerlaphecet <laphecet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 6 Jan 2012 14:27:13 +0000 (14:27 +0000)
MUON/AliMUONPolygon.cxx
MUON/AliMUONRejectList.cxx

index 3b976ba..7df70ca 100644 (file)
@@ -116,13 +116,20 @@ void AliMUONPolygon::Copy(TObject& obj) const
   
   AliMUONPolygon& rhs = static_cast<AliMUONPolygon&>(obj);
 
-  Double_t* x = new Double_t[fN];
-  Double_t* y = new Double_t[fN];
+  Double_t* x(0x0);
+  Double_t* y(0x0);
   
-  for ( Int_t i = 0; i < fN; ++i )
+  if ( fN > 0 )
   {
-    x[i] = fX[i];
-    y[i] = fY[i];
+    x = new Double_t[fN];
+    y = new Double_t[fN];
+    
+    for ( Int_t i = 0; i < fN; ++i )
+    {
+      x[i] = fX[i];
+      y[i] = fY[i];
+    }
+  
   }
   
   delete [] rhs.fX;
index ede8e89..0ac51c4 100644 (file)
@@ -144,16 +144,24 @@ namespace
   {
     /// Copy src into dest
     delete[] dest;
-    dest = new UInt_t[n];
-    memcpy(src,dest,n*sizeof(UInt_t));
+    dest = 0;
+    if ( src && n )
+    {
+      dest = new UInt_t[n];
+      memcpy(src,dest,n*sizeof(UInt_t));
+    }
   }
 
   void Copy(UInt_t n, Float_t* src, Float_t*& dest)
   {
     /// Copy src into dest
     delete[] dest;
-    dest = new Float_t[n];
-    memcpy(src,dest,n*sizeof(Float_t));
+    dest = 0;
+    if ( src && n )
+    {
+      dest = new Float_t[n];
+      memcpy(src,dest,n*sizeof(Float_t));
+    }
   }
   
 }
@@ -256,7 +264,12 @@ AliMUONRejectList::CopyTo(AliMUONRejectList& rl) const
   ::Copy(rl.fMaxNofManus,fManuProbas,rl.fManuProbas);
   
   delete rl.fChannels;  
-  rl.fChannels = static_cast<AliMUONVStore*>(fChannels->Clone());
+  rl.fChannels = 0x0;
+  
+  if ( fChannels ) 
+  {
+    rl.fChannels = static_cast<AliMUONVStore*>(fChannels->Clone());
+  }
 }
 
 //_____________________________________________________________________________