From 6611ddb678e5e40fe56585d54bc8b344979b22a9 Mon Sep 17 00:00:00 2001 From: Andre Sailer <andre.philippe.sailer@cern.ch> Date: Wed, 21 Jun 2017 16:35:45 +0200 Subject: [PATCH] Layering: implement d'tor to delete layers --- DDCore/include/XML/Layering.h | 2 +- DDCore/src/XML/Layering.cpp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/DDCore/include/XML/Layering.h b/DDCore/include/XML/Layering.h index 2e3ec7075..54b9168f9 100644 --- a/DDCore/include/XML/Layering.h +++ b/DDCore/include/XML/Layering.h @@ -121,7 +121,7 @@ namespace dd4hep { /// Initializing constructor Layering(xml::Element element); /// Default destructor - ~Layering() = default; + ~Layering(); std::vector<Layer*>& layers() { return _stack.layers(); diff --git a/DDCore/src/XML/Layering.cpp b/DDCore/src/XML/Layering.cpp index 9484eb0fe..060cc0c4b 100644 --- a/DDCore/src/XML/Layering.cpp +++ b/DDCore/src/XML/Layering.cpp @@ -123,3 +123,9 @@ void Layering::sensitivePositionsInLayer(xml::Element e, std::vector<double>& se } +Layering::~Layering(){ + vector<Layer*>& layers = this->layers(); + for_each(layers.begin(), layers.end(), detail::deletePtr<Layer>); + layers.clear(); +} + -- GitLab