]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Mem.leak fix: array of matrices is owned by the object
authorshahoian <shahoian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 3 Sep 2013 16:33:40 +0000 (16:33 +0000)
committershahoian <shahoian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 3 Sep 2013 16:33:40 +0000 (16:33 +0000)
STEER/STEERBase/AliHMPIDPIDResponse.cxx
STEER/STEERBase/AliHMPIDPIDResponse.h

index 0285553196bf952de4d9aaa260eaacf9b7f09088..74ec1d92342b1c404b034f86aecb956f73341ca0 100644 (file)
@@ -121,8 +121,15 @@ AliHMPIDPIDResponse::AliHMPIDPIDResponse(const AliHMPIDPIDResponse& c):
       fgkMaxPcY[i] = c.fgkMaxPcY[i];
      }
    
-   for(Int_t i=0; i<7; i++) fM[i] = c.fM[i];
+   for(Int_t i=0; i<7; i++) fM[i] = c.fM[i] ? new TGeoHMatrix(*c.fM[i]) : 0;
  }
+//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+AliHMPIDPIDResponse::~AliHMPIDPIDResponse()
+{
+  // d-tor
+  for (int i=7;i--;) delete fM[i];
+}
+
 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 AliHMPIDPIDResponse& AliHMPIDPIDResponse::operator=(const AliHMPIDPIDResponse& c) {
 
@@ -147,7 +154,7 @@ AliHMPIDPIDResponse& AliHMPIDPIDResponse::operator=(const AliHMPIDPIDResponse& c
       fgkMaxPcX[i] = c.fgkMaxPcX[i];
       fgkMaxPcY[i] = c.fgkMaxPcY[i];
      }   
-     for(Int_t i=0; i<7; i++) fM[i] = c.fM[i];                 
+     for(Int_t i=0; i<7; i++) fM[i] = c.fM[i] ? new TGeoHMatrix(*c.fM[i]) : 0;
     } 
     
   return *this; 
index 754b30823d98f6ed3f908e8b6f7cdff3858b352e..b7e54e151b5b2c40eb1cfa0c7f564c288a667e51 100644 (file)
@@ -29,7 +29,7 @@ public :
              AliHMPIDPIDResponse();    //ctor
              AliHMPIDPIDResponse(const AliHMPIDPIDResponse& c);                //copy constructor
              AliHMPIDPIDResponse &operator=(const AliHMPIDPIDResponse& c);     //dummy assignment operator
-    virtual ~AliHMPIDPIDResponse() {;} //dtor
+            virtual ~AliHMPIDPIDResponse();
     
     enum EChamberData{kMinCh=0,kMaxCh=6,kMinPc=0,kMaxPc=5};      //Segmenation
     enum EPadxData{kPadPcX=80,kMinPx=0,kMaxPx=79,kMaxPcx=159};   //Segmentation structure along x