diff --git a/DDCore/include/XML/Layering.h b/DDCore/include/XML/Layering.h index 2e3ec7075e97d4dd5b8610cb6eab42966a7e0613..54b9168f9911a39761a62b6058ae604197815ece 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 9484eb0fe0d4912316353ac72a78779ada798212..060cc0c4b9e234a5c1eb79533af61dd1a27d67ab 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(); +} +