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