Skip to content

Commit

Permalink
fix: Do not leak TArrayF in FairTutorialDet2DigiPar
Browse files Browse the repository at this point in the history
  • Loading branch information
ChristianTackeGSI authored and karabowi committed Jun 12, 2023
1 parent 68f6ac1 commit 9717b2e
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 29 deletions.
18 changes: 7 additions & 11 deletions examples/simulation/Tutorial2/src/FairTutorialDet2DigiPar.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,17 @@

#include "FairTutorialDet2DigiPar.h"

#include "FairLogger.h"
#include "FairParamList.h"

#include <TArrayF.h>
#include <TString.h>
#include <fairlogger/Logger.h>

FairTutorialDet2DigiPar::FairTutorialDet2DigiPar(const char* name, const char* title, const char* context)
: FairParGenericSet(name, title, context)
, ftutdetdigipar(new TArrayF(10))
, ftutdetdigiparsector()
, ftutdetdigiparstation(-1)
{
detName = "TutorialDet";
// ftutdetdigipar = new TArrayF(10);
// ftutdetdigipar = new TArrayF(10);
}

FairTutorialDet2DigiPar::~FairTutorialDet2DigiPar() { clear(); }
Expand All @@ -46,10 +42,10 @@ void FairTutorialDet2DigiPar::printparams()
for (Int_t i = 0; i < size; i++) {
LOG(info) << i << " :" << ftutdetdigiparsector.GetAt(i);
}
size = ftutdetdigipar->GetSize();
size = ftutdetdigipar.GetSize();
LOG(info) << "size: " << size;
for (Int_t i = 0; i < size; i++) {
LOG(info) << i << " :" << ftutdetdigipar->GetAt(i);
LOG(info) << i << " :" << ftutdetdigipar.GetAt(i);
}
}

Expand All @@ -73,8 +69,8 @@ void FairTutorialDet2DigiPar::putParams(FairParamList* l)
zwischen[i] = ftutdetdigipar.GetAt(i);
}
*/
ftutdetdigipar->Set(array_size);
l->add("FairTutorialDet2DigiPar", *ftutdetdigipar);
ftutdetdigipar.Set(array_size);
l->add("FairTutorialDet2DigiPar", ftutdetdigipar);
}

Bool_t FairTutorialDet2DigiPar::getParams(FairParamList* l)
Expand Down Expand Up @@ -103,9 +99,9 @@ Bool_t FairTutorialDet2DigiPar::getParams(FairParamList* l)

Int_t array_size = (count_sectors * 10 + ftutdetdigiparstation * 3);
LOG(info) << "Array Size: " << array_size;
ftutdetdigipar->Set(array_size);
ftutdetdigipar.Set(array_size);
// Float_t zwischen[array_size];
if (!(l->fill("FairTutorialDet2DigiPar", ftutdetdigipar))) {
if (!(l->fill("FairTutorialDet2DigiPar", &ftutdetdigipar))) {
LOG(warn) << "Could not initialize FairTutorialDet2DigiPar";
return kFALSE;
}
Expand Down
28 changes: 10 additions & 18 deletions examples/simulation/Tutorial2/src/FairTutorialDet2DigiPar.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/********************************************************************************
* Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* Copyright (C) 2014-2023 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
* *
* This software is distributed under the terms of the *
* GNU Lesser General Public Licence (LGPL) version 3, *
Expand All @@ -16,10 +16,10 @@
#include "FairParGenericSet.h"

#include <Rtypes.h>
#include <TArrayF.h>
#include <TArrayI.h>

class FairParamList;
class TArrayF;

class FairTutorialDet2DigiPar : public FairParGenericSet
{
Expand All @@ -29,33 +29,25 @@ class FairTutorialDet2DigiPar : public FairParGenericSet
const char* title = "Tutorial Det digi parameters",
const char* context = "Default");

FairTutorialDet2DigiPar(const FairTutorialDet2DigiPar&) = delete;
FairTutorialDet2DigiPar& operator=(const FairTutorialDet2DigiPar&) = delete;
/** Destructor **/
virtual ~FairTutorialDet2DigiPar();
~FairTutorialDet2DigiPar() override;

/** Initialisation from input device**/
// virtual Bool_t init(FairParIo* input);

/** Output to file **/
// virtual Int_t write(FairParIo* output);

// virtual void print();
virtual void printparams();

/** Reset all parameters **/
virtual void clear();
void clear() override;

void putParams(FairParamList*);
Bool_t getParams(FairParamList*);
void putParams(FairParamList*) override;
Bool_t getParams(FairParamList*) override;

private:
TArrayF* ftutdetdigipar; //
TArrayF ftutdetdigipar{10}; //
TArrayI ftutdetdigiparsector; //
Int_t ftutdetdigiparstation; //

FairTutorialDet2DigiPar(const FairTutorialDet2DigiPar&);
FairTutorialDet2DigiPar& operator=(const FairTutorialDet2DigiPar&);

ClassDef(FairTutorialDet2DigiPar, 1);
ClassDefOverride(FairTutorialDet2DigiPar, 1);
};

#endif

0 comments on commit 9717b2e

Please sign in to comment.