From bea5d8da6ee3ba19a33c26a6f2c32b5acd120b45 Mon Sep 17 00:00:00 2001 From: Walter Lampl <Walter.Lampl@cern.ch> Date: Tue, 8 Dec 2020 18:35:31 +0100 Subject: [PATCH] add few delete statements to fix leaks in CombinedMuonTrackBuilder --- .../MuidTrackBuilder/src/CombinedMuonTrackBuilder.cxx | 5 ++++- .../MuonCombinedBaseTools/src/MuonCandidateTool.cxx | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Reconstruction/MuonIdentification/MuidTrackBuilder/src/CombinedMuonTrackBuilder.cxx b/Reconstruction/MuonIdentification/MuidTrackBuilder/src/CombinedMuonTrackBuilder.cxx index 82b44be853bd..42bea06c3c07 100755 --- a/Reconstruction/MuonIdentification/MuidTrackBuilder/src/CombinedMuonTrackBuilder.cxx +++ b/Reconstruction/MuonIdentification/MuidTrackBuilder/src/CombinedMuonTrackBuilder.cxx @@ -1560,6 +1560,7 @@ CombinedMuonTrackBuilder::standaloneFit(const Trk::Track& inputSpectrometerTrack // fail as calo incorrectly described m_messageHelper->printWarning(12); delete track; + delete extrapolated; spectrometerTSOS->clear(); delete spectrometerTSOS; @@ -1576,7 +1577,7 @@ CombinedMuonTrackBuilder::standaloneFit(const Trk::Track& inputSpectrometerTrack if (m_refineELossStandAloneTrackFit) { ATH_MSG_VERBOSE("Refining Calorimeter TSOS in StandAlone Fit ..."); - std::unique_ptr<Trk::Track> oldTrack = std::make_unique<Trk::Track>(Trk::Track(*track)); + std::unique_ptr<Trk::Track> oldTrack = std::make_unique<Trk::Track>(Trk::Track(*track)); //Deep copy of track here??? m_materialUpdator->updateCaloTSOS(*track); @@ -1592,6 +1593,7 @@ CombinedMuonTrackBuilder::standaloneFit(const Trk::Track& inputSpectrometerTrack track = refinedTrack; } else { ATH_MSG_VERBOSE("refined track fit failed"); + delete track; track = oldTrack.release(); improvementsFailed++; } @@ -1645,6 +1647,7 @@ CombinedMuonTrackBuilder::standaloneFit(const Trk::Track& inputSpectrometerTrack ++m_countDegradedStandaloneFit; if (improvementsFailed == 2) { ATH_MSG_WARNING("reject track, quality degraded and improvements failed"); + delete track; return nullptr; } } diff --git a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.cxx index 7092da07242c..a41f99e43186 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedBaseTools/src/MuonCandidateTool.cxx @@ -119,6 +119,7 @@ namespace MuonCombined { } } if(!skipTrack){ + delete standaloneTrack; standaloneTrack=new Trk::Track(msTrack); trackLinks[ standaloneTrack ] = std::make_pair(trackLink,nullptr); } -- GitLab