From 90d57361997c9e20f2957d9fa12bc4632c05e214 Mon Sep 17 00:00:00 2001 From: Markus Frank <Markus.Frank@cern.ch> Date: Thu, 3 Oct 2019 10:34:43 +0200 Subject: [PATCH] Fix memory leak --- DDCore/src/Volumes.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/DDCore/src/Volumes.cpp b/DDCore/src/Volumes.cpp index 14d532fb4..9733a504e 100644 --- a/DDCore/src/Volumes.cpp +++ b/DDCore/src/Volumes.cpp @@ -625,13 +625,12 @@ PlacedVolume _addNode(TGeoVolume* par, Volume daughter, int copy_nr, const Rotat daughter = daughter.reflect(); //cout << "REFLECTION: (x.Cross(y)).Dot(z) " << (x.Cross(y)).Dot(z) << endl; } + TGeoRotation r; double elements[9]; rot3D.GetComponents(elements); - auto r = new TGeoRotation(); - r->SetMatrix(elements); - auto m = new TGeoCombiTrans(); - m->SetRotation(r); - return _addNode(par, daughter, copy_nr, m); + r.SetMatrix(elements); + auto m = make_unique<TGeoCombiTrans>(TGeoTranslation(0,0,0),r); + return _addNode(par, daughter, copy_nr, m.release()); } PlacedVolume _addNode(TGeoVolume* par, Volume daughter, int copy_nr, const Transform3D& tr) { @@ -648,14 +647,12 @@ PlacedVolume _addNode(TGeoVolume* par, Volume daughter, int copy_nr, const Trans daughter = daughter.reflect(); //cout << "REFLECTION: (x.Cross(y)).Dot(z) " << (x.Cross(y)).Dot(z) << endl; } + TGeoRotation r; double elements[9]; rot3D.GetComponents(elements); - auto m = new TGeoCombiTrans(); - m->SetTranslation(pos3D.x(), pos3D.y(), pos3D.z()); - auto r = new TGeoRotation(); - r->SetMatrix(elements); - m->SetRotation(r); - return _addNode(par, daughter, copy_nr, m); + r.SetMatrix(elements); + auto m = make_unique<TGeoCombiTrans>(TGeoTranslation(pos3D.x(), pos3D.y(), pos3D.z()),r); + return _addNode(par, daughter, copy_nr, m.release()); } /// Place daughter volume according to generic Transform3D -- GitLab