[Mobies-commit] [commit] r4389 - in UDM/trunk: include src/UdmBase src/UdmDom

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


Author: ksmyth
Date: Fri Oct 13 09:38:37 2017
New Revision: 4389

Log:
Fix memory leaks

Modified:
   UDM/trunk/include/UdmBase.h
   UDM/trunk/src/UdmBase/Project.cpp
   UDM/trunk/src/UdmDom/UdmDom.cpp

Modified: UDM/trunk/include/UdmBase.h
==============================================================================
--- UDM/trunk/include/UdmBase.h	Tue May 16 15:46:39 2017	(r4388)
+++ UDM/trunk/include/UdmBase.h	Fri Oct 13 09:38:37 2017	(r4389)
@@ -3592,6 +3592,10 @@
 		testdn()->resetStaticUdmProject();
 	};
 
+	virtual void release()
+	{
+		dn = NULL;
+	};
 
 	//string support
 	virtual	void CreateNewToString(const string &metalocator, const ::Uml::Class &rootclass, 

Modified: UDM/trunk/src/UdmBase/Project.cpp
==============================================================================
--- UDM/trunk/src/UdmBase/Project.cpp	Tue May 16 15:46:39 2017	(r4388)
+++ UDM/trunk/src/UdmBase/Project.cpp	Fri Oct 13 09:38:37 2017	(r4389)
@@ -632,7 +632,8 @@
 			
 			datanetworks.insert(pair<string, Udm::DataNetwork*>(i->filename(), dn->testdn()));
 			rev_datanetworks.insert(pair<Udm::DataNetwork*, string>(dn->testdn(), i->filename()));
-			
+			dn->release();
+			delete dn;
 			
 			::UdmProject::Datanetwork _udm_pr_dn = ::UdmProject::Datanetwork::Create(_project,::UdmProject::Project::meta_instances);
 			_udm_pr_dn.metalocator() = i->metalocator();
@@ -825,7 +826,7 @@
 
 			map<string, Udm::DataNetwork*>::iterator rev_i = datanetworks.find(ph_sys_name);
 			if (rev_i == datanetworks.end())
-				throw udm_exception(string("Datanetwork with systemname ") + ph_sys_name + string(" was not found in the reverse map!"));
+				throw udm_exception(string("Datanetwork with systemname '") + ph_sys_name + string("' was not found in the reverse map!"));
 
 			if (rev_i->second == o.__impl()->__getdn())
 			{

Modified: UDM/trunk/src/UdmDom/UdmDom.cpp
==============================================================================
--- UDM/trunk/src/UdmDom/UdmDom.cpp	Tue May 16 15:46:39 2017	(r4388)
+++ UDM/trunk/src/UdmDom/UdmDom.cpp	Fri Oct 13 09:38:37 2017	(r4389)
@@ -1362,7 +1362,9 @@
 			{
 				XMLString::release(&a_buf);
 				throw udm_exception("Attr is of non-float format");
+
 			}
+			XMLString::release(&a_buf);
 			return d;
 		}
 


More information about the Mobies-commit mailing list