[Mobies-commit] [commit] r4392 - UDM/trunk/src/UdmDom

ksmyth at svn.isis.vanderbilt.edu ksmyth at svn.isis.vanderbilt.edu
Fri Oct 13 09:38:57 CDT 2017


Author: ksmyth
Date: Fri Oct 13 09:38:56 2017
New Revision: 4392

Log:
Fix unintentional copy/assignment that may lead to memory leaks

Modified:
   UDM/trunk/src/UdmDom/UdmDom.cpp

Modified: UDM/trunk/src/UdmDom/UdmDom.cpp
==============================================================================
--- UDM/trunk/src/UdmDom/UdmDom.cpp	Fri Oct 13 09:38:52 2017	(r4391)
+++ UDM/trunk/src/UdmDom/UdmDom.cpp	Fri Oct 13 09:38:56 2017	(r4392)
@@ -737,7 +737,12 @@
 		const DataNetwork * mydn;
 	
 		
-	public:	
+	public:
+#if _MSC_VER >= 1800
+        DomObject(const DomObject&) = delete;
+        DomObject& operator=(const DomObject&) = delete;
+#endif
+
 		DOMElement *dom_element;
 		
 		
@@ -2371,7 +2376,7 @@
 					//DOMString oname = subtype ? "derived" : "instances";
 					const XMLCh *oname = subtype ? gXML__derived : gXML__instances;
 
-					DomObject peer = *const_cast<DomObject *>((const DomObject*)archetype);
+					DomObject& peer = *const_cast<DomObject *>((const DomObject*)archetype);
 					const XMLCh *peerid = peer.GetID();
 
 
@@ -2774,7 +2779,7 @@
 			{
 				UDM_ASSERT(dynamic_cast<DomObject*>(*i));
 				UDM_ASSERT(static_cast<DomObject *>(*i)->__getdn() == __getdn());
-				DomObject peer = *static_cast<DomObject *>(*i);
+				DomObject& peer = *static_cast<DomObject *>(*i);
 
 				const XMLCh *peerid = peer.GetID();
 				if(aa != NULL) 
@@ -2927,7 +2932,7 @@
 					set<Object> new_vect;		//this will contain the vector of corresponding objects
 					for(vector<ObjectImpl* >::const_iterator k = nvect.begin(); k != nvect.end(); k++) 
 					{
-						DomObject peer = *static_cast<DomObject *>(*k);
+						DomObject& peer = *static_cast<DomObject *>(*k);
 						Udm::Object peer_o_inst = peer.findInstanceIn((DomObject*)(*oset_i));
 						if (peer_o_inst) new_vect.insert(peer_o_inst);
 					}
@@ -2988,7 +2993,7 @@
 					set<Object> new_vect;		//this will contain the vector of corresponding objects
 					for(vector<ObjectImpl* >::const_iterator k = nvect.begin(); k != nvect.end(); k++) 
 					{
-						DomObject peer = *static_cast<DomObject *>(*k);
+						DomObject& peer = *static_cast<DomObject *>(*k);
 						Udm::Object peer_o_inst = peer.findInstanceIn((DomObject*)(*oset_i));
 						if (peer_o_inst)new_vect.insert(peer_o_inst);
 					}


More information about the Mobies-commit mailing list