Fix Coverity defects
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 8 Nov 2010 17:13:31 +0000 (17:13 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 8 Nov 2010 17:13:31 +0000 (17:13 +0000)
TRD/AliTRDptrgCBB.cxx
TRD/AliTRDptrgFEB.cxx
TRD/AliTRDptrgParam.cxx

index 8769d7b..9c36819 100644 (file)
@@ -128,30 +128,37 @@ Bool_t AliTRDptrgCBB::LoadParams()
   else {
     // load default parameters 
     // initialize LUTsoutputWidth=<value optimized out>
-    AliTRDptrgLUT* LUT = new AliTRDptrgLUT();
-    this->fLUTArray.AddLast(LUT);
-    LUT = new AliTRDptrgLUT(); // this->fRunLoader
-    this->fLUTArray.AddLast(LUT);
-    LUT = new AliTRDptrgLUT(); // this->fRunLoader
-    this->fLUTArray.AddLast(LUT);
+    AliTRDptrgLUT* lut = new AliTRDptrgLUT();
+    this->fLUTArray.AddLast(lut);
+    lut = new AliTRDptrgLUT(); // this->fRunLoader
+    this->fLUTArray.AddLast(lut);
+    lut = new AliTRDptrgLUT(); // this->fRunLoader
+    this->fLUTArray.AddLast(lut);
     // the following lines are only needed for test reasons
-    LUT = dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray.At(0));
     Int_t* initData = new Int_t[4096]; // 2^12
-    for (Int_t i = 0; i < 4096; i++ ) {
-      initData[i] = i;
+    lut = dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray.At(0));
+    if (lut) {
+      for (Int_t i = 0; i < 4096; i++ ) {
+        initData[i] = i;
+      }
+      lut->InitTable(12, 12, initData, kTRUE); // make a copy
     }
-    LUT->InitTable(12, 12, initData, kTRUE); // make a copy
-    LUT = dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray.At(0));
-    for (Int_t i = 0; i < 4096; i++ ) {
-      initData[i] = i;
+    lut = dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray.At(0));
+    if (lut) {
+      for (Int_t i = 0; i < 4096; i++ ) {
+        initData[i] = i;
+      }
+      lut->InitTable(12, 12, initData, kTRUE); // make a copy
     }
-    LUT->InitTable(12, 12, initData, kTRUE); // make a copy
-    LUT = dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray.At(1));
-    for (Int_t i = 4096; i >= 0; i--) {
-      initData[4096 - i] = i;  // inverse ramp
+    lut = dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray.At(1));
+    if (lut) {
+      //for (Int_t i = 4096; i >= 0; i--) {
+      for (Int_t i = 4096; i > 0; i--) {
+        initData[4096 - i] = i;  // inverse ramp
+      }
+      lut->InitTable(12, 12, initData, kTRUE); // make a copy 
     }
-    LUT->InitTable(12, 12, initData, kTRUE); // make a copy 
-  
+
     AliTRDptrgParam::AliTRDptrgPTmasks* masks = 
       new AliTRDptrgParam::AliTRDptrgPTmasks();  
     masks->fLUTs[0] = kTRUE;
@@ -184,7 +191,6 @@ Int_t* AliTRDptrgCBB::Simulate()
   partResults[1] = this->fCBC->Simulate(); // CB-C
   partResults[2] = this->fTLMU->Simulate(); // TLMU
   
-  
   // combine partResults and create inputVectors  
   Int_t mask = 0x1;
   for (Int_t i = 0; i < 3 ; i++) {
@@ -203,8 +209,10 @@ Int_t* AliTRDptrgCBB::Simulate()
   result[0] = nLUTs + 1; // storage array length in the first array value
   for (Int_t iLUT = 0; iLUT < nLUTs; iLUT++) { 
     // process the return value for each LUT and store the result in the array
-    result[iLUT + 1] = 
-      dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray[iLUT])->LookUp(inputVector);
+    AliTRDptrgLUT *lutTmp = dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray[iLUT]);
+    if (lutTmp) {
+      result[iLUT + 1] = lutTmp->LookUp(inputVector);
+    }
     AliDebug(4, Form("CBB result[%d] = 0x%x\n",(iLUT + 1),result[iLUT + 1])); 
   }
   
@@ -237,7 +245,11 @@ Int_t* AliTRDptrgCBB::Simulate()
     }
   }
   AliDebug(4, Form("CBB TRD Wake up result = %d", result[nLUTs + 1]));
+
+  delete [] partResults;
+
   return result;
+
 }
 
 //______________________________________________________________________________
index aad1fe3..a0effbd 100644 (file)
@@ -290,17 +290,21 @@ Bool_t AliTRDptrgFEB::LoadParams()
       lut = new AliTRDptrgLUT(); 
       this->fLUTArray.AddLast(lut);
                        // the following lines are only needed for test reasons
-      lut = dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray.At(0));
       Int_t* initData = new Int_t[256]; // 2^8
-      for (Int_t i = 0; i < 256; i++ ) {
-        initData[i] = i;
+      lut = dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray.At(0));
+      if (lut) {
+        for (Int_t i = 0; i < 256; i++ ) {
+          initData[i] = i;
+        }
+        lut->InitTable(8, 8, initData, kTRUE); // make copy of initData
       }
-      lut->InitTable(8, 8, initData, kTRUE); // make copy of initData
       lut = dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray.At(1));
-      for (Int_t i = 255; i >= 0; i--) {
-        initData[255 - i] = i;  // inverse ramp
+      if (lut) {
+        for (Int_t i = 255; i >= 0; i--) {
+          initData[255 - i] = i;  // inverse ramp
+        }
+        lut->InitTable(8, 8, initData, kTRUE);
       }
-      lut->InitTable(8, 8, initData, kTRUE);
     }
     else {
       // initialize threshold
@@ -317,15 +321,20 @@ Bool_t AliTRDptrgFEB::LoadParams()
       // the following lines are only needed for test reasons
       lut = dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray.At(0));
       Int_t* initData = new Int_t[4096]; // 2^12
-      for (Int_t i = 0; i < 4096; i++ ) {
-        initData[i] = i;
+      if (lut) {
+        for (Int_t i = 0; i < 4096; i++ ) {
+          initData[i] = i;
+        }
+        lut->InitTable(12, 12, initData, kTRUE); // make a copy of the table
       }
-      lut->InitTable(12, 12, initData, kTRUE); // make a copy of the table
       lut = dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray.At(1));
-      for (Int_t i = 4095; i >= 0; i--) {
-        initData[4096 - i] = i;  // inverse ramp
+      if (lut) {
+        //for (Int_t i = 4095; i >= 0; i--) {
+        for (Int_t i = 4096; i > 0; i--) {
+          initData[4096 - i] = i;  // inverse ramp
+        }
+        lut->InitTable(12, 12, initData, kTRUE); // make a copy of the table
       }
-      lut->InitTable(12, 12, initData, kTRUE); // make a copy of the table
       delete[] initData;    
     }
     return false;
@@ -399,8 +408,10 @@ Int_t* AliTRDptrgFEB::Simulate()
       AliDebug(4, Form("FEB: (pos=%d,id=%d,lut=%d,vector=0x%x)", 
                        this->fPosition, this->fID, iLUT, inputVector));
 
-      result[iLUT + 1] = 
-       dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray[iLUT])->LookUp(inputVector);
+      AliTRDptrgLUT *lutTmp = dynamic_cast<AliTRDptrgLUT*>(this->fLUTArray[iLUT]);
+      if (lutTmp) {
+        result[iLUT + 1] =  lutTmp->LookUp(inputVector);
+      }
       AliDebug(4, Form("FEB result[%d] = 0x%x",(iLUT + 1),result[iLUT + 1])); 
     }
   }
index bd8b187..d1160b7 100644 (file)
@@ -1106,8 +1106,10 @@ Bool_t AliTRDptrgParam::ParseFEB(TString identifier, TString value) {
       return kFALSE; 
     }
     for (Int_t iValue = 0; iValue < arr.GetEntries(); iValue++) {
-      this->fFEBT0Thresholds[0][iValue] =  
-        (dynamic_cast<TObjString*>(arr[iValue])->GetString()).Atoi();
+      TObjString *ostrng = dynamic_cast<TObjString*>(arr[iValue]);
+      if (ostrng) {
+        this->fFEBT0Thresholds[0][iValue] = (ostrng->GetString()).Atoi();
+      }
       AliDebug(5, Form("FEB/T0/A/THR[%d]=%d", iValue, 
                        this->fFEBT0Thresholds[0][iValue])); 
     }
@@ -1127,8 +1129,10 @@ Bool_t AliTRDptrgParam::ParseFEB(TString identifier, TString value) {
       return kFALSE; 
     }
     for (Int_t iValue = 0; iValue < arr.GetEntries(); iValue++) {
-      this->fFEBT0Thresholds[1][iValue] =  
-        (dynamic_cast<TObjString*>(arr[iValue])->GetString()).Atoi();
+      TObjString *ostrng = dynamic_cast<TObjString*>(arr[iValue]);
+      if (ostrng) {
+        this->fFEBT0Thresholds[1][iValue] = (ostrng->GetString()).Atoi();
+      }
       AliDebug(5, Form("FEB/T0/C/THR[%d]=%d", iValue, 
                        this->fFEBT0Thresholds[1][iValue])); 
     }
@@ -1154,8 +1158,11 @@ Bool_t AliTRDptrgParam::ParseFEB(TString identifier, TString value) {
       return kFALSE; 
     }
     for (Int_t iValue = 0; iValue < arr.GetEntries(); iValue++) {
-      this->fFEBV0Thresholds[0][cardID][iValue] =  
-        (dynamic_cast<TObjString*>(arr[iValue])->GetString()).Atoi();
+      TObjString *ostrng = dynamic_cast<TObjString*>(arr[iValue]);
+      if (ostrng) {
+        this->fFEBV0Thresholds[0][cardID][iValue] =  
+          (ostrng->GetString()).Atoi();
+      }
       AliDebug(5, Form("FEB/V0/A%d/THR[%d]=%d", cardID, iValue, 
                        this->fFEBV0Thresholds[0][cardID][iValue])); 
     }
@@ -1180,8 +1187,10 @@ Bool_t AliTRDptrgParam::ParseFEB(TString identifier, TString value) {
       return kFALSE; 
     }
     for (Int_t iValue = 0; iValue < arr.GetEntries(); iValue++) {
-      this->fFEBV0Thresholds[1][cardID][iValue] =  
-        (dynamic_cast<TObjString*>(arr[iValue])->GetString()).Atoi();
+      TObjString *ostrng = dynamic_cast<TObjString*>(arr[iValue]);
+      if (ostrng) {
+        this->fFEBV0Thresholds[1][cardID][iValue] = (ostrng->GetString()).Atoi();
+      }
       AliDebug(5, Form("FEB/V0/C%d/THR[%d]=%d", cardID, iValue, 
                        this->fFEBV0Thresholds[1][cardID][iValue])); 
     }
@@ -1457,14 +1466,21 @@ Bool_t AliTRDptrgParam::ParseTLMU(TString identifier, TString value) {
 
     SplitUpValues(value, arr);
     
-    TString t0 = (dynamic_cast<TObjString*>(arr[0]))->GetString();
-    TString t1 = (dynamic_cast<TObjString*>(arr[1]))->GetString();
+    TObjString *ostrng0 = dynamic_cast<TObjString*>(arr[0]);
+    TObjString *ostrng1 = dynamic_cast<TObjString*>(arr[1]);
+
+    if (ostrng0 && ostrng1) {
+
+      TString t0 = ostrng0->GetString();
+      TString t1 = ostrng1->GetString();
   
-    this->fTLMUmultiplicity[index][0] = t0.Atoi();
-    this->fTLMUmultiplicity[index][1] = t1.Atoi();
+      this->fTLMUmultiplicity[index][0] = t0.Atoi();
+      this->fTLMUmultiplicity[index][1] = t1.Atoi();
  
-    AliDebug(5, Form("%d: %d  %d", index, this->fTLMUmultiplicity[index][0], 
-                     this->fTLMUmultiplicity[index][1]));      
+      AliDebug(5, Form("%d: %d  %d", index, this->fTLMUmultiplicity[index][0], 
+                       this->fTLMUmultiplicity[index][1]));      
+
+    }
 
     return kTRUE;
   }
@@ -1481,7 +1497,9 @@ Bool_t AliTRDptrgParam::ParseTLMU(TString identifier, TString value) {
     } 
   
     for (Int_t iEntry = 0; iEntry < arr.GetEntries(); iEntry++) {
-      TString t = (dynamic_cast<TObjString*>(arr[iEntry]))->GetString(); 
+
+      TObjString *ostrng = dynamic_cast<TObjString*>(arr[iEntry]);
+      TString t = ostrng->GetString(); 
       
       TString indexStr = t(2,1);
       if (t.Index("CM") == 0) { // coincidence matrix
@@ -1572,6 +1590,7 @@ void AliTRDptrgParam::MergeResults(TArrayI*& partResult1, TArrayI*& partResult2,
   if ((partResult1 == 0x0) || (partResult2 == 0x0) || 
       (signalsInvolved1 == 0x0) || (signalsInvolved2 == 0x0)) {
     AliError("fatal logical equation processing error!");
+    return;
   }
  
   // allocate results and signalsInvolved