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