From 4ad35f199bbea69d0a54dc1ae94ddf7faa68d457 Mon Sep 17 00:00:00 2001 From: shahoian Date: Tue, 3 Sep 2013 16:33:40 +0000 Subject: [PATCH] Mem.leak fix: array of matrices is owned by the object --- STEER/STEERBase/AliHMPIDPIDResponse.cxx | 11 +++++++++-- STEER/STEERBase/AliHMPIDPIDResponse.h | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/STEER/STEERBase/AliHMPIDPIDResponse.cxx b/STEER/STEERBase/AliHMPIDPIDResponse.cxx index 0285553196b..74ec1d92342 100644 --- a/STEER/STEERBase/AliHMPIDPIDResponse.cxx +++ b/STEER/STEERBase/AliHMPIDPIDResponse.cxx @@ -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; diff --git a/STEER/STEERBase/AliHMPIDPIDResponse.h b/STEER/STEERBase/AliHMPIDPIDResponse.h index 754b30823d9..b7e54e151b5 100644 --- a/STEER/STEERBase/AliHMPIDPIDResponse.h +++ b/STEER/STEERBase/AliHMPIDPIDResponse.h @@ -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 -- 2.43.0