bug fixed
[u/mrichter/AliRoot.git] / RAW / AliAltroMapping.cxx
index 5794278..749e157 100644 (file)
@@ -21,7 +21,6 @@
 #include "AliAltroMapping.h"
 #include "AliLog.h"
 #include <Riostream.h>
-//#include <stdlib.h>
 
 
 ClassImp(AliAltroMapping)
@@ -30,7 +29,9 @@ ClassImp(AliAltroMapping)
 AliAltroMapping::AliAltroMapping():
   fIn(NULL),
   fNumberOfChannels(0),
-  fMaxHWAddress(0)
+  fMaxHWAddress(0),
+  fMappingSize(0),
+  fMapping(NULL)
 {
   // Default constructor
 }
@@ -39,7 +40,9 @@ AliAltroMapping::AliAltroMapping():
 AliAltroMapping::AliAltroMapping(const char *mappingFile):
   fIn(NULL),
   fNumberOfChannels(0),
-  fMaxHWAddress(0)
+  fMaxHWAddress(0),
+  fMappingSize(0),
+  fMapping(NULL)
 {
   // Constructor
   // Reads the mapping from an external file
@@ -52,29 +55,10 @@ AliAltroMapping::AliAltroMapping(const char *mappingFile):
 //_____________________________________________________________________________
 AliAltroMapping::~AliAltroMapping()
 {
-  CloseMappingFile();
   // destructor
-}
-
-//_____________________________________________________________________________
-AliAltroMapping::AliAltroMapping(const AliAltroMapping& mapping):
-  TObject(mapping),
-  fIn(mapping.fIn),
-  fNumberOfChannels(mapping.fNumberOfChannels),
-  fMaxHWAddress(mapping.fMaxHWAddress)
-{
-// Copy Constructor
-
-  Fatal("AliAltroMapping", "copy constructor not implemented");
-}
-
-//_____________________________________________________________________________
-AliAltroMapping& AliAltroMapping::operator = (const AliAltroMapping& /*mapping*/)
-{
-//Assigment operator
+  CloseMappingFile();
 
-  Fatal("operator =", "assignment operator not implemented");
-  return *this;
+  if (fMapping) delete [] fMapping;
 }
 
 //_____________________________________________________________________________
@@ -86,14 +70,17 @@ Bool_t AliAltroMapping::OpenMappingFile(const char *mappingFile)
   fIn = new ifstream(mappingFile);
   if (!*fIn) {
     AliFatal(Form("Missing mapping file (%s) !",mappingFile));
+    CloseMappingFile();
     return kFALSE;
   }
   if (!(*fIn >> fNumberOfChannels)) {
     AliFatal(Form("Syntax of the mapping file is wrong (%s) !",mappingFile));
+    CloseMappingFile();
     return kFALSE;
   }
   if (!(*fIn >> fMaxHWAddress)) {
     AliFatal(Form("Syntax of the mapping file is wrong (%s) !",mappingFile));
+    CloseMappingFile();
     return kFALSE;
   }
 
@@ -101,7 +88,7 @@ Bool_t AliAltroMapping::OpenMappingFile(const char *mappingFile)
 }
 
 //_____________________________________________________________________________
-Bool_t AliAltroMapping::CloseMappingFile()
+void AliAltroMapping::CloseMappingFile()
 {
   // Closes the external mapping
   // file
@@ -110,6 +97,4 @@ Bool_t AliAltroMapping::CloseMappingFile()
     delete fIn;
     fIn = NULL;
   }
-
-  return kTRUE;
 }