[mapguide-commits] r10130 - in branches/4.0/MgDev: Oem/dbxml/dbxml/src/dbxml Server/src/Common/Manager

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Tue Apr 1 05:10:46 PDT 2025


Author: jng
Date: 2025-04-01 05:10:45 -0700 (Tue, 01 Apr 2025)
New Revision: 10130

Modified:
   branches/4.0/MgDev/Oem/dbxml/dbxml/src/dbxml/XmlInputStreamWrapper.hpp
   branches/4.0/MgDev/Server/src/Common/Manager/ServerManager.cpp
   branches/4.0/MgDev/Server/src/Common/Manager/WorkerThreadData.cpp
   branches/4.0/MgDev/Server/src/Common/Manager/WorkerThreadData.h
Log:
Fix new/delete mismatches as reported by asan. This required a minor structural change of MgWorkerThreadData

Modified: branches/4.0/MgDev/Oem/dbxml/dbxml/src/dbxml/XmlInputStreamWrapper.hpp
===================================================================
--- branches/4.0/MgDev/Oem/dbxml/dbxml/src/dbxml/XmlInputStreamWrapper.hpp	2025-04-01 12:09:19 UTC (rev 10129)
+++ branches/4.0/MgDev/Oem/dbxml/dbxml/src/dbxml/XmlInputStreamWrapper.hpp	2025-04-01 12:10:45 UTC (rev 10130)
@@ -62,10 +62,14 @@
 	}
 	virtual ~XmlInputStreamWrapper() {
 		delete is_;
-		if (publicId_)
-			delete publicId_;
-		if (systemId_)
-			delete systemId_;
+		if (publicId_) {
+			XERCES_CPP_NAMESPACE_QUALIFIER
+				XMLString::release(&publicId_);
+		}
+		if (systemId_) {
+			XERCES_CPP_NAMESPACE_QUALIFIER
+				XMLString::release(&systemId_);
+		}
 	}
 	virtual XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream *makeStream() const {
 		return new XmlBinStream(is_);
@@ -75,14 +79,18 @@
 	virtual const XMLCh *getSystemId() const { return systemId_; }
 
 	void setPublicId(const XMLCh* const id) {
-		if (publicId_)
-			delete publicId_;
+		if (publicId_) {
+			XERCES_CPP_NAMESPACE_QUALIFIER
+				XMLString::release(&publicId_);
+		}
 		publicId_ = XERCES_CPP_NAMESPACE_QUALIFIER
 			XMLString::replicate(id);
 	}
 	void setSystemId(const XMLCh* const id) {
-		if (systemId_)
-			delete systemId_;
+		if (systemId_) {
+			XERCES_CPP_NAMESPACE_QUALIFIER
+				XMLString::release(&systemId_);
+		}
 		systemId_ = XERCES_CPP_NAMESPACE_QUALIFIER
 			XMLString::replicate(id);
 	}

Modified: branches/4.0/MgDev/Server/src/Common/Manager/ServerManager.cpp
===================================================================
--- branches/4.0/MgDev/Server/src/Common/Manager/ServerManager.cpp	2025-04-01 12:09:19 UTC (rev 10129)
+++ branches/4.0/MgDev/Server/src/Common/Manager/ServerManager.cpp	2025-04-01 12:10:45 UTC (rev 10130)
@@ -1633,8 +1633,12 @@
 {
     // We want the worker thread pool to do some work for us
     MgWorkerThreadData* wtd;
-    ACE_NEW_NORETURN( wtd, MgWorkerThreadData( function ) );
+    ACE_NEW_MALLOC_NORETURN(wtd, 
+        static_cast<MgWorkerThreadData *>(ACE_Allocator::instance()->malloc(sizeof(MgWorkerThreadData))),
+        MgWorkerThreadData());
 
+    wtd->SetFunction(function);
+
     ACE_Message_Block* mb;
     ACE_NEW_NORETURN( mb, ACE_Message_Block( wtd ) );
     if(mb)

Modified: branches/4.0/MgDev/Server/src/Common/Manager/WorkerThreadData.cpp
===================================================================
--- branches/4.0/MgDev/Server/src/Common/Manager/WorkerThreadData.cpp	2025-04-01 12:09:19 UTC (rev 10129)
+++ branches/4.0/MgDev/Server/src/Common/Manager/WorkerThreadData.cpp	2025-04-01 12:10:45 UTC (rev 10130)
@@ -26,8 +26,8 @@
 //  <summary>
 //  The constructor for the MgWorkerThreadData object.
 //  </summary>
-MgWorkerThreadData::MgWorkerThreadData( void (*function)() ) :
-    m_pFunction(function)
+MgWorkerThreadData::MgWorkerThreadData( ) :
+    m_pFunction(nullptr)
 {
 };
 
@@ -38,3 +38,7 @@
 MgWorkerThreadData::~MgWorkerThreadData()
 {
 };
+
+void MgWorkerThreadData::SetFunction(void (*function)()) {
+    m_pFunction = function;
+}

Modified: branches/4.0/MgDev/Server/src/Common/Manager/WorkerThreadData.h
===================================================================
--- branches/4.0/MgDev/Server/src/Common/Manager/WorkerThreadData.h	2025-04-01 12:09:19 UTC (rev 10129)
+++ branches/4.0/MgDev/Server/src/Common/Manager/WorkerThreadData.h	2025-04-01 12:10:45 UTC (rev 10130)
@@ -27,12 +27,13 @@
 ///////////////////////////////////////////////////////////////////////
 ///  Constructors/Destructors
 public:
-    MgWorkerThreadData( void (*function)() );
+    MgWorkerThreadData();
     virtual ~MgWorkerThreadData();
 
 ///////////////////////////////////////////////////////////////////////
 ///  Accessors
 public:
+    void SetFunction(void (*function)());
     void (*m_pFunction)();
 
 ///////////////////////////////////////////////////////////////////////



More information about the mapguide-commits mailing list