CheckGeometryOverlaps - Fix memory leak
Addresses sanitiser error
Direct leak of 3690680 byte(s) in 9415 object(s) allocated from:
#0 0x7f23c2531da8 in operator new(unsigned long) /afs/cern.ch/cms/CAF/CMSCOMM/COMM_ECAL/dkonst/GCC/build/contrib/gcc-8.2.0/src/gcc/8.2.0/libsanitizer/lsan/lsan_interceptors.cc:229
#1 0x7f239a99b9a0 in std::_MakeUniq<PVolume>::__single_object std::make_unique<PVolume, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ROOT::Math::Impl::Transform3D<double> const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ROOT::Math::Impl::Transform3D<double> const&) /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/8.2.0-3fa06/x86_64-centos7/include/c++/8.2.0/bits/unique_ptr.h:831
#2 0x7f239a99b9a0 in LogVolBase::createPVolume(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ROOT::Math::Impl::Transform3D<double> const&) ../Det/DetDesc/src/Lib/LogVolBase.cpp:211
#3 0x7f2393202915 in XmlLVolumeCnv::internalCreateObj(xercesc_3_1::DOMElement*, DataObject*&, IOpaqueAddress*) ../Det/DetDescCnv/src/component/XmlLVolumeCnv.cpp:394
#4 0x7f23931b16ec in XmlGenericCnv::createObj(IOpaqueAddress*, DataObject*&) ../Det/DetDescCnv/src/Lib/XmlGenericCnv.cpp:257
#5 0x7f23a73bec79 in ConversionSvc::makeCall(int, bool, bool, bool, IOpaqueAddress*&, DataObject*&) ../GaudiKernel/src/Lib/ConversionSvc.cpp:46
#6 0x7f23a73bf3bc in ConversionSvc::createObj(IOpaqueAddress*, DataObject*&) ../GaudiKernel/src/Lib/ConversionSvc.cpp:90
#7 0x7f23995e32a5 in PersistencySvc::makeCall(int, IOpaqueAddress*&, DataObject*&) ../GaudiCommonSvc/src/PersistencySvc/PersistencySvc.cpp:71
#8 0x7f23995e370e in PersistencySvc::createObj(IOpaqueAddress*, DataObject*&) ../GaudiCommonSvc/src/PersistencySvc/PersistencySvc.cpp:106
#9 0x7f23a74fc212 in TsDataSvc::loadObject(IConversionSvc*, IRegistry*) ../GaudiKernel/src/Lib/TsDataSvc.cpp:501
#10 0x7f239b38cbd8 in DetDataSvc::loadObject(IConversionSvc*, IRegistry*) (/usera/jonesc/LHCbCMake/Feature/Gaudi/InstallArea/x86_64-centos7-gcc8-dbg+lsan/lib/libGaudiSvc.so+0x154bd8)
#11 0x7f23a74f79e0 in TsDataSvc::loadObject(IRegistry*) ../GaudiKernel/src/Lib/TsDataSvc.cpp:461
#12 0x7f23a74fb3f6 in TsDataSvc::retrieveEntry(DataSvcHelpers::RegistryEntry*, std::basic_string_view<char, std::char_traits<char> >, DataSvcHelpers::RegistryEntry*&) ../GaudiKernel/src/Lib/TsDataSvc.cpp:597
#13 0x7f23a74fb104 in TsDataSvc::retrieveEntry(DataSvcHelpers::RegistryEntry*, std::basic_string_view<char, std::char_traits<char> >, DataSvcHelpers::RegistryEntry*&) ../GaudiKernel/src/Lib/TsDataSvc.cpp:575
#14 0x7f23a74fb104 in TsDataSvc::retrieveEntry(DataSvcHelpers::RegistryEntry*, std::basic_string_view<char, std::char_traits<char> >, DataSvcHelpers::RegistryEntry*&) ../GaudiKernel/src/Lib/TsDataSvc.cpp:575
#15 0x7f23a74fb104 in TsDataSvc::retrieveEntry(DataSvcHelpers::RegistryEntry*, std::basic_string_view<char, std::char_traits<char> >, DataSvcHelpers::RegistryEntry*&) ../GaudiKernel/src/Lib/TsDataSvc.cpp:575
#16 0x7f23a74fb104 in TsDataSvc::retrieveEntry(DataSvcHelpers::RegistryEntry*, std::basic_string_view<char, std::char_traits<char> >, DataSvcHelpers::RegistryEntry*&) ../GaudiKernel/src/Lib/TsDataSvc.cpp:575
#17 0x7f23a74faf6d in TsDataSvc::retrieveEntry(DataSvcHelpers::RegistryEntry*, std::basic_string_view<char, std::char_traits<char> >, DataSvcHelpers::RegistryEntry*&) ../GaudiKernel/src/Lib/TsDataSvc.cpp:551
#18 0x7f23a74fb550 in TsDataSvc::retrieveObject(IRegistry*, std::basic_string_view<char, std::char_traits<char> >, DataObject*&) ../GaudiKernel/src/Lib/TsDataSvc.cpp:617
#19 0x7f23a74ee647 in IDataProviderSvc::retrieveObject(std::basic_string_view<char, std::char_traits<char> >, DataObject*&) ../GaudiKernel/GaudiKernel/IDataProviderSvc.h:234
#20 0x7f23a74ee647 in SmartDataObjectPtr::retrieve(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DataObject*&) ../GaudiKernel/src/Lib/SmartDataObjectPtr.cpp:37
#21 0x7f23a74ee9d1 in SmartDataObjectPtr::retrieveObject() ../GaudiKernel/src/Lib/SmartDataObjectPtr.cpp:69
#22 0x7f23a74eec9b in SmartDataObjectPtr::retrieve(SmartDataObjectPtr*) ../GaudiKernel/GaudiKernel/SmartDataObjectPtr.h:89
#23 0x7f239a9a5b7a in SmartDataObjectPtr::accessData() /usera/jonesc/LHCbCMake/Feature/Gaudi/InstallArea/x86_64-centos7-gcc8-dbg+lsan/include/GaudiKernel/SmartDataObjectPtr.h:86
#24 0x7f239a9a5b7a in SmartDataStorePtr<ILVolume, SmartDataObjectPtr::ObjectLoader>::accessTypeSafeData() /usera/jonesc/LHCbCMake/Feature/Gaudi/InstallArea/x86_64-centos7-gcc8-dbg+lsan/include/GaudiKernel/SmartDataStorePtr.h:112
#25 0x7f239a9a5b7a in SmartDataStorePtr<ILVolume, SmartDataObjectPtr::ObjectLoader>::operator int() /usera/jonesc/LHCbCMake/Feature/Gaudi/InstallArea/x86_64-centos7-gcc8-dbg+lsan/include/GaudiKernel/SmartDataStorePtr.h:105
#26 0x7f239a9a5b7a in PVolume::findLogical() ../Det/DetDesc/src/Lib/PVolume.cpp:78
#27 0x7f239a9a7e89 in PVolume::PVolume(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ROOT::Math::Impl::Transform3D<double> const&) ../Det/DetDesc/src/Lib/PVolume.cpp:65
#28 0x7f239a99b9b4 in std::_MakeUniq<PVolume>::__single_object std::make_unique<PVolume, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ROOT::Math::Impl::Transform3D<double> const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ROOT::Math::Impl::Transform3D<double> const&) /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/8.2.0-3fa06/x86_64-centos7/include/c++/8.2.0/bits/unique_ptr.h:831
#29 0x7f239a99b9b4 in LogVolBase::createPVolume(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ROOT::Math::Impl::Transform3D<double> const&) ../Det/DetDesc/src/Lib/LogVolBase.cpp:211
#30 0x7f2393202915 in XmlLVolumeCnv::internalCreateObj(xercesc_3_1::DOMElement*, DataObject*&, IOpaqueAddress*) ../Det/DetDescCnv/src/component/XmlLVolumeCnv.cpp:394
#31 0x7f23931b16ec in XmlGenericCnv::createObj(IOpaqueAddress*, DataObject*&) ../Det/DetDescCnv/src/Lib/XmlGenericCnv.cpp:257
#32 0x7f23a73bec79 in ConversionSvc::makeCall(int, bool, bool, bool, IOpaqueAddress*&, DataObject*&) ../GaudiKernel/src/Lib/ConversionSvc.cpp:46
#33 0x7f23a73bf3bc in ConversionSvc::createObj(IOpaqueAddress*, DataObject*&) ../GaudiKernel/src/Lib/ConversionSvc.cpp:90
#34 0x7f23995e32a5 in PersistencySvc::makeCall(int, IOpaqueAddress*&, DataObject*&) ../GaudiCommonSvc/src/PersistencySvc/PersistencySvc.cpp:71
#35 0x7f23995e370e in PersistencySvc::createObj(IOpaqueAddress*, DataObject*&) ../GaudiCommonSvc/src/PersistencySvc/PersistencySvc.cpp:106
In additional, whilst there, some minor modernisation updates.
Edited by Marco Cattaneo