]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/AliTRDPrfInfo.cxx
Fix for TRD memory leak (J.Klein)
[u/mrichter/AliRoot.git] / TRD / AliTRDPrfInfo.cxx
CommitLineData
e526983e 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/* $Id: AliTRDPrfInfo.cxx 27946 2008-08-13 15:26:24Z cblume $ */
17
18///////////////////////////////////////////////////////////////////////////////
19// //
20// Calibration base class for a single ROC //
21// Contains one UShort_t value per pad //
22// However, values are set and get as float, there are stored internally as //
23// (UShort_t) value * 10000 //
24// //
25///////////////////////////////////////////////////////////////////////////////
26
e526983e 27#include "AliTRDPrfInfo.h"
e526983e 28
29ClassImp(AliTRDPrfInfo)
30
31//_____________________________________________________________________________
32AliTRDPrfInfo::AliTRDPrfInfo()
33 :TObject()
34 ,fSize(0)
35 ,fData(0)
36{
37 //
38 // Default constructor
39 //
40
41}
42
43//_____________________________________________________________________________
44AliTRDPrfInfo::AliTRDPrfInfo(Int_t n)
45 :TObject()
46 ,fSize(n)
47 ,fData(0)
48{
49 //
50 // Constructor that initializes a given size
51 //
52
53 fData = new UChar_t[n];
54 for(Int_t k = 0; k < fSize; k++){
55 fData[k] = 0;
56 }
a2865918 57
e526983e 58}
a2865918 59
e526983e 60//_____________________________________________________________________________
61AliTRDPrfInfo::AliTRDPrfInfo(const AliTRDPrfInfo &c)
62 :TObject(c)
63 ,fSize(c.fSize)
a2865918 64 ,fData(0)
e526983e 65{
66 //
67 // AliTRDPrfInfo copy constructor
68 //
69
70 Int_t iBin = 0;
71
72 fData = new UChar_t[fSize];
73 for (iBin = 0; iBin < fSize; iBin++) {
74 fData[iBin] = ((AliTRDPrfInfo &) c).fData[iBin];
75 }
76
77}
a2865918 78
e526983e 79//_____________________________________________________________________________
80AliTRDPrfInfo::~AliTRDPrfInfo()
81{
82 //
83 // AliTRDPrfInfo destructor
84 //
85
86 if (fData) {
87 delete [] fData;
88 fData = 0;
89 }
90
91}
a2865918 92
e526983e 93//_____________________________________________________________________________
94AliTRDPrfInfo &AliTRDPrfInfo::operator=(const AliTRDPrfInfo &c)
95{
96 //
97 // Assignment operator
98 //
99
a2865918 100 if (this == &c) {
101 return *this;
102 }
103
104 fSize = c.fSize;
105
106 if (fData) {
107 delete [] fData;
108 }
109 fData = new UChar_t[fSize];
110 for (Int_t iBin = 0; iBin < fSize; iBin++) {
111 fData[iBin] = ((AliTRDPrfInfo &) c).fData[iBin];
112 }
113
e526983e 114 return *this;
115
116}
117
118//_____________________________________________________________________________
119void AliTRDPrfInfo::Copy(TObject &c) const
120{
121 //
122 // Copy function
123 //
124
125 Int_t iBin = 0;
126
127 ((AliTRDPrfInfo &) c).fSize = fSize;
128
129 if (((AliTRDPrfInfo &) c).fData) delete [] ((AliTRDPrfInfo &) c).fData;
130 ((AliTRDPrfInfo &) c).fData = new UChar_t[fSize];
131 for (iBin = 0; iBin < fSize; iBin++) {
132 ((AliTRDPrfInfo &) c).fData[iBin] = fData[iBin];
133 }
134
135 TObject::Copy(c);
136
137}
a2865918 138
e526983e 139//_____________________________________________________________________________
140void AliTRDPrfInfo::SetSize(Int_t n)
141{
142 //
143 // Set the size
144 //
145
a2865918 146 if (fData) delete [] fData;
e526983e 147 fData = new UChar_t[n];
148
149 fSize = n;
150
151}