From 701b39097995e4b27dda7a262bda9f25c973b563 Mon Sep 17 00:00:00 2001 From: Atlas-Software Librarian <Atlas-Software.Librarian@cern.ch> Date: Fri, 8 Apr 2016 17:14:48 +0200 Subject: [PATCH] 'CMakeLists.txt' (TrkSpacePoint-05-00-04) * attempt to fix 12423 09/07/2014 (Low) Missing assignment operator :/Tracking/TrkEvent/TrkSpacePoint/src/SpacePoint.cxx in function "operator =" * tag as TrkSpacePoint-05-00-04 --- .../TrkEvent/TrkSpacePoint/CMakeLists.txt | 29 +++++++++++++++++++ .../TrkEvent/TrkSpacePoint/src/SpacePoint.cxx | 26 +++++++++++------ 2 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 Tracking/TrkEvent/TrkSpacePoint/CMakeLists.txt diff --git a/Tracking/TrkEvent/TrkSpacePoint/CMakeLists.txt b/Tracking/TrkEvent/TrkSpacePoint/CMakeLists.txt new file mode 100644 index 00000000000..8ad9259c7cf --- /dev/null +++ b/Tracking/TrkEvent/TrkSpacePoint/CMakeLists.txt @@ -0,0 +1,29 @@ +################################################################################ +# Package: TrkSpacePoint +################################################################################ + +# Declare the package name: +atlas_subdir( TrkSpacePoint ) + +# Declare the package's dependencies: +atlas_depends_on_subdirs( PUBLIC + Control/CLIDSvc + Control/DataModel + Control/SGTools + DetectorDescription/Identifier + Event/EventContainers + GaudiKernel + Tracking/TrkEvent/TrkMeasurementBase + PRIVATE + Tracking/TrkDetDescr/TrkDetElementBase + Tracking/TrkDetDescr/TrkSurfaces + Tracking/TrkEvent/TrkEventPrimitives + Tracking/TrkEvent/TrkPrepRawData ) + +# Component(s) in the package: +atlas_add_library( TrkSpacePoint + src/*.cxx + PUBLIC_HEADERS TrkSpacePoint + LINK_LIBRARIES DataModel SGTools Identifier GaudiKernel TrkMeasurementBase + PRIVATE_LINK_LIBRARIES TrkDetElementBase TrkSurfaces TrkEventPrimitives TrkPrepRawData ) + diff --git a/Tracking/TrkEvent/TrkSpacePoint/src/SpacePoint.cxx b/Tracking/TrkEvent/TrkSpacePoint/src/SpacePoint.cxx index bbac139d12e..78802bc1fff 100755 --- a/Tracking/TrkEvent/TrkSpacePoint/src/SpacePoint.cxx +++ b/Tracking/TrkEvent/TrkSpacePoint/src/SpacePoint.cxx @@ -58,7 +58,11 @@ namespace Trk { m_elemIdList = SP.m_elemIdList; m_position = SP.m_position; - m_clusList = new std::pair<const PrepRawData*, const PrepRawData*>(*SP.m_clusList); + if (SP.m_clusList){ + m_clusList = new std::pair<const PrepRawData*, const PrepRawData*>(*SP.m_clusList); + } else { + m_clusList=nullptr; + } m_globalCovariance = SP.m_globalCovariance; #ifndef NDEBUG s_numberOfInstantiations++; // new SpacePoint, so increment total count @@ -71,14 +75,18 @@ namespace Trk SpacePoint& SpacePoint::operator=(const SpacePoint& SP) { if (&SP !=this) - { - Trk::MeasurementBase::operator=(SP); - delete m_clusList; - m_elemIdList = SP.m_elemIdList; - m_position = SP.m_position; - m_clusList = new std::pair<const PrepRawData*, const PrepRawData*>(*SP.m_clusList); - m_globalCovariance = SP.m_globalCovariance; - } + { + Trk::MeasurementBase::operator=(SP); + delete m_clusList; + m_elemIdList = SP.m_elemIdList; + m_position = SP.m_position; + if (SP.m_clusList){ + m_clusList = new std::pair<const PrepRawData*, const PrepRawData*>(*SP.m_clusList); + } else { + m_clusList=nullptr; + } + m_globalCovariance = SP.m_globalCovariance; + } return *this; } -- GitLab