Skip to content

Commit 925099e

Browse files
ChristianTackeGSIkarabowi
authored andcommitted
FairRunSim: Do not leak fLoaderName
fLoaderName was not deleted in the destructor. Rewrite it using value semantics. (cherry picked from commit 5681010)
1 parent cd604e6 commit 925099e

2 files changed

Lines changed: 9 additions & 10 deletions

File tree

base/steer/FairRunSim.cxx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ FairRunSim::FairRunSim(Bool_t isMaster)
5757
, ListOfModules(new TObjArray())
5858
, MatFname("")
5959
, fStoreTraj(kFALSE)
60-
, fLoaderName(new TString("TGeo"))
6160
, fPythiaDecayer(kFALSE)
6261
, fPythiaDecayerConfig("")
6362
, fUserDecay(kFALSE)
@@ -152,7 +151,7 @@ void FairRunSim::Init()
152151
// fOutFile=fRootManager->OpenOutFile(fOutname);
153152
LOG(info) << "============== FairRunSim: Initialising simulation run ==============";
154153

155-
FairGeoLoader* loader = new FairGeoLoader(fLoaderName->Data(), "Geo Loader");
154+
auto loader = new FairGeoLoader(fLoaderName.Data(), "Geo Loader");
156155
FairGeoInterface* GeoInterFace = loader->getGeoInterface();
157156
GeoInterFace->SetNoOfSets(ListOfModules->GetEntries());
158157
GeoInterFace->setMediaFile(MatFname.Data());
@@ -342,11 +341,10 @@ void FairRunSim::SetMaterials(const char* MatFileName)
342341
LOG(info) << "Media file used: " << MatFname.Data();
343342
}
344343

345-
void FairRunSim::SetGeoModel(char* name)
344+
void FairRunSim::SetGeoModel(const char* name)
346345
{
347-
if (strncmp(fName, "TGeant3", 7) == 0) {
348-
delete fLoaderName;
349-
fLoaderName = new TString(name);
346+
if (fName == "TGeant3") {
347+
fLoaderName = name;
350348
LOG(info) << "FairRun::SetGeoModel(): G3 native geometry model used ";
351349
} else {
352350
LOG(info) << "FairRun::SetGeoModel(): Geant3 MC engine only !";

base/steer/FairRunSim.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ class FairModule;
2929
class FairPrimaryGenerator;
3030

3131
/**
32-
* Configure the Simulation session
32+
* \brief Configure the Simulation session
33+
* \ingroup base_steer
3334
* @author M. Al-Turany D. Bertini
3435
* @version 0.1
3536
* @since 12.01.04
@@ -105,10 +106,10 @@ class FairRunSim : public FairRun
105106
}
106107

107108
/**Set geometry builder*/
108-
void SetGeoModel(char* name);
109+
void SetGeoModel(const char* name);
109110

110111
/**return the geometry loader used in this session*/
111-
TString* GetGeoModel() { return fLoaderName; }
112+
TString* GetGeoModel() { return &fLoaderName; }
112113

113114
/**Get the field used in simulation*/
114115
FairField* GetField() override { return fField; }
@@ -229,7 +230,7 @@ class FairRunSim : public FairRun
229230
TObjArray* ListOfModules; //! /** Array of used modules */
230231
TString MatFname; //! /** Material file name */
231232
Bool_t fStoreTraj; //! /** Trajectory store flags */
232-
TString* fLoaderName; //! /** Geometry Model (TGeo or G3)*/
233+
TString fLoaderName{"TGeo"}; //!< Geometry Model (TGeo or G3)
233234
Bool_t fPythiaDecayer; //! /** flag for using Pythia decayer*/
234235
TString fPythiaDecayerConfig; //! /** Macro for Pythia decay configuration*/
235236
Bool_t fUserDecay; /** flag for setting user decay */

0 commit comments

Comments
 (0)