You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by jb...@apache.org on 2005/06/04 21:49:33 UTC

svn commit: r180016 [2/2] - in /xerces/c/branches/xerces-2.7: Projects/Win32/VC6/xerces-all/XercesLib/ Projects/Win32/VC7.1/xerces-all/XercesLib/ Projects/Win32/VC7/xerces-all/XercesLib/ src/xercesc/dom/deprecated/ src/xercesc/dom/impl/ src/xercesc/framework/ src/xercesc/framework/psvi/ src/xercesc/internal/ src/xercesc/util/ src/xercesc/util/NetAccessors/WinSock/ src/xercesc/util/Platforms/AIX/ src/xercesc/util/Platforms/BeOS/ src/xercesc/util/Platforms/Cygwin/ src/xercesc/util/Platforms/FreeBSD/ src/xercesc/util/Platforms/HPUX/ src/xercesc/util/Platforms/IRIX/ src/xercesc/util/Platforms/Interix/ src/xercesc/util/Platforms/Linux/ src/xercesc/util/Platforms/MacOS/ src/xercesc/util/Platforms/NetBSD/ src/xercesc/util/Platforms/OS2/ src/xercesc/util/Platforms/OS390/ src/xercesc/util/Platforms/OS400/ src/xercesc/util/Platforms/OpenServer/ src/xercesc/util/Platforms/QNX/ src/xercesc/util/Platforms/Solaris/ src/xercesc/util/Platforms/Tandem/ src/xercesc/util/Platforms/Tru64/ src/xercesc/util/Platforms/UnixWare/ src/xercesc/util/Platforms/Win32/ src/xercesc/util/regx/ src/xercesc/validators/DTD/ src/xercesc/validators/datatype/ src/xercesc/validators/schema/

Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/OpenServer/OpenServerPlatformUtils.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/OpenServer/OpenServerPlatformUtils.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/OpenServer/OpenServerPlatformUtils.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/OpenServer/OpenServerPlatformUtils.cpp Sat Jun  4 12:49:30 2005
@@ -94,6 +94,7 @@
 #include    <xercesc/util/RuntimeException.hpp>
 #include    <xercesc/util/Janitor.hpp>
 #include    <xercesc/util/Mutexes.hpp>
+#include    <xercesc/util/XMLHolder.hpp>
 #include    <xercesc/util/XMLString.hpp>
 #include    <xercesc/util/XMLUniDefs.hpp>
 #include    <xercesc/util/XMLUni.hpp>
@@ -141,11 +142,11 @@
     try
     {
 #if defined (XML_USE_ICU_MESSAGELOADER)
-        retVal = new ICUMsgLoader(msgDomain);
+        retVal = new (fgMemoryManager) ICUMsgLoader(msgDomain);
 #elif defined (XML_USE_ICONV_MESSAGELOADER)
-        retVal = new MsgCatalogLoader(msgDomain);
+        retVal = new (fgMemoryManager) MsgCatalogLoader(msgDomain);
 #else
-        retVal = new InMemMsgLoader(msgDomain);
+        retVal = new (fgMemoryManager) InMemMsgLoader(msgDomain);
 #endif
     }
     catch(const OutOfMemoryException&)
@@ -163,9 +164,9 @@
 XMLNetAccessor* XMLPlatformUtils::makeNetAccessor()
 {
 #if defined (XML_USE_NETACCESSOR_LIBWWW)
-    return new LibWWWNetAccessor();
+    return new (fgMemoryManager) LibWWWNetAccessor();
 #else
-    return new SocketNetAccessor();
+    return new (fgMemoryManager) SocketNetAccessor();
 #endif
 }
 
@@ -180,9 +181,9 @@
 XMLTransService* XMLPlatformUtils::makeTransService()
 {
 #if defined (XML_USE_ICU_TRANSCODER)
-	return new ICUTransService;
+	return new (fgMemoryManager) ICUTransService;
 #else
-	return new IconvTransService;
+	return new (fgMemoryManager) IconvTransService;
 #endif
 }
 
@@ -436,7 +437,9 @@
 // ---------------------------------------------------------------------------
 #if !defined (APP_NO_THREADS)
 
-static pthread_mutex_t* gAtomicOpMutex = 0;
+typedef XMLHolder<pthread_mutex_t>  MutexHolderType;
+
+static MutexHolderType* gAtomicOpMutex = 0;
 
 // ---------------------------------------------------------------------------
 //  XMLPlatformUtils: Platform init method
@@ -448,9 +451,9 @@
     // Normally, mutexes are created on first use, but there is a
     // circular dependency between compareAndExchange() and
     // mutex creation that must be broken.
-	gAtomicOpMutex = new pthread_mutex_t;
+	gAtomicOpMutex = new (fgMemoryManager) MutexHolderType;
 
-	if (pthread_mutex_init(gAtomicOpMutex, NULL))
+	if (pthread_mutex_init(&gAtomicOpMutex->fInstance, NULL))
 	{
 		delete gAtomicOpMutex;
 		gAtomicOpMutex = 0;
@@ -467,18 +470,21 @@
 	pthread_mutex_t   mutex;
 	int               recursionCount;
 	pthread_t         tid;
+    MemoryManager* const    fMemoryManager;
 
-	RecursiveMutex() {
+	RecursiveMutex(MemoryManager* manager) :
+        mutex(),
+        recursionCount(0),
+        tid(0),
+        fMemoryManager(manager) {
 		if (pthread_mutex_init(&mutex, NULL))
 			XMLPlatformUtils::panic(PanicHandler::Panic_MutexErr);
-		recursionCount = 0;
-		tid = 0;
 	}
 
 	~RecursiveMutex() {
 		if (pthread_mutex_destroy(&mutex))
 			ThrowXMLwithMemMgr(XMLPlatformUtilsException,
-					 XMLExcepts::Mutex_CouldNotDestroy, XMLPlatformUtils::fgMemoryManager);
+					 XMLExcepts::Mutex_CouldNotDestroy, fMemoryManager);
 	}
 
 	void lock() {
@@ -503,9 +509,9 @@
 	}
 };
 
-void* XMLPlatformUtils::makeMutex()
+void* XMLPlatformUtils::makeMutex(MemoryManager* manager)
 {
-	return new RecursiveMutex;
+	return new (manager) RecursiveMutex(manager);
 }
 
 void XMLPlatformUtils::closeMutex(void* const mtxHandle)
@@ -546,14 +552,14 @@
 									   const void* const   newValue,
 									   const void* const   toCompare)
 {
-	if (pthread_mutex_lock(gAtomicOpMutex))
+	if (pthread_mutex_lock(&gAtomicOpMutex->fInstance))
 		panic(PanicHandler::Panic_SynchronizationErr);
 
 	void *retVal = *toFill;
 	if (*toFill == toCompare)
 		*toFill = (void *)newValue;
 
-	if (pthread_mutex_unlock(gAtomicOpMutex))
+	if (pthread_mutex_unlock(&gAtomicOpMutex->fInstance))
 		panic(PanicHandler::Panic_SynchronizationErr);
 
 	return retVal;
@@ -561,12 +567,12 @@
 
 int XMLPlatformUtils::atomicIncrement(int &location)
 {
-	if (pthread_mutex_lock(gAtomicOpMutex))
+	if (pthread_mutex_lock(&gAtomicOpMutex->fInstance))
 		panic(PanicHandler::Panic_SynchronizationErr);
 
 	int tmp = ++location;
 
-	if (pthread_mutex_unlock(gAtomicOpMutex))
+	if (pthread_mutex_unlock(&gAtomicOpMutex->fInstance))
 		panic(PanicHandler::Panic_SynchronizationErr);
 
 	return tmp;
@@ -574,12 +580,12 @@
 
 int XMLPlatformUtils::atomicDecrement(int &location)
 {
-	if (pthread_mutex_lock(gAtomicOpMutex))
+	if (pthread_mutex_lock(&gAtomicOpMutex->fInstance))
 		panic(PanicHandler::Panic_SynchronizationErr);
 
 	int tmp = --location;
 
-	if (pthread_mutex_unlock( gAtomicOpMutex))
+	if (pthread_mutex_unlock( &gAtomicOpMutex->fInstance))
 		panic(PanicHandler::Panic_SynchronizationErr);
 
 	return tmp;
@@ -602,20 +608,20 @@
 // -----------------------------------------------------------------------
 //  Mutex- and atomic operation methods
 // -----------------------------------------------------------------------
-void* XMLPlatformUtils::makeMutex()
+void* XMLPlatformUtils::makeMutex(MemoryManager*)
 {
 	return 0;
 }
 
-void XMLPlatformUtils::closeMutex(void* const mtxHandle)
+void XMLPlatformUtils::closeMutex(void* const)
 {
 }
 
-void XMLPlatformUtils::lockMutex(void* const mtxHandle)
+void XMLPlatformUtils::lockMutex(void* const)
 {
 }
 
-void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
+void XMLPlatformUtils::unlockMutex(void* const)
 {
 }
 
@@ -648,7 +654,7 @@
 void XMLPlatformUtils::platformTerm()
 {
 #if !defined (APP_NO_THREADS)
-	pthread_mutex_destroy(gAtomicOpMutex);
+	pthread_mutex_destroy(&gAtomicOpMutex->fInstance);
 	delete gAtomicOpMutex;
 	gAtomicOpMutex = 0;
 #else

Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/QNX/QNXPlatformUtils.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/QNX/QNXPlatformUtils.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/QNX/QNXPlatformUtils.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/QNX/QNXPlatformUtils.cpp Sat Jun  4 12:49:30 2005
@@ -34,6 +34,7 @@
 #include <xercesc/util/Janitor.hpp>
 #include <xercesc/util/PlatformUtils.hpp>
 #include <xercesc/util/RuntimeException.hpp>
+#include <xercesc/util/XMLHolder.hpp>
 #include <xercesc/util/XMLExceptMsgs.hpp>
 #include <xercesc/util/XMLString.hpp>
 #include <xercesc/util/XMLUniDefs.hpp>
@@ -253,41 +254,63 @@
 //  Mutex methods
 // ---------------------------------------------------------------------------
 
-void* XMLPlatformUtils::makeMutex()
+typedef XMLHolder<pthread_mutex_t>  MutexHolderType;
+
+void* XMLPlatformUtils::makeMutex(MemoryManager* manager)
 {
     pthread_mutexattr_t attr;
     pthread_mutexattr_init( &attr );
     pthread_mutexattr_setrecursive( &attr, PTHREAD_RECURSIVE_ENABLE );
-    pthread_mutex_t *mutex = new pthread_mutex_t;
-    if( pthread_mutex_init( mutex, &attr ) != EOK ) {
-        delete mutex;
+
+    MutexHolderType* const  holder = new (manager) MutexHolderType;
+
+    if( pthread_mutex_init( &holder->fInstance, &attr ) != EOK ) {
+        delete holder;
         panic(PanicHandler::Panic_MutexErr);
     }
     pthread_mutexattr_destroy( &attr );
-    return mutex;
+    return holder;
 }
 
 void XMLPlatformUtils::closeMutex(void* const mtxHandle)
 {
-    if( mtxHandle == NULL || pthread_mutex_destroy( (pthread_mutex_t *)mtxHandle ) != EOK ) {
-        ThrowXMLwithMemMgr(XMLPlatformUtilsException, XMLExcepts::Mutex_CouldNotClose, fgMemoryManager);
+    if (mtxHandle != NULL)
+    {
+        MutexHolderType* const  holder =
+            MutexHolderType::castTo(mtxHandle);
+
+        if (pthread_mutex_destroy(&holder->fInstance))
+        {
+            delete holder;
+
+            ThrowXMLwithMemMgr(XMLPlatformUtilsException,
+                     XMLExcepts::Mutex_CouldNotDestroy, fgMemoryManager);
+        }
+        delete holder;
     }
-    delete mtxHandle;
 }
 
 
 void XMLPlatformUtils::lockMutex(void* const mtxHandle)
 {
-    if( mtxHandle == NULL || pthread_mutex_lock( (pthread_mutex_t *)mtxHandle ) != EOK ) {
-        panic(PanicHandler::Panic_MutexErr);
+    if (mtxHandle != NULL)
+    {
+        if (pthread_mutex_lock(&MutexHolderType::castTo(mtxHandle)->fInstance))
+        {
+            panic(PanicHandler::Panic_MutexErr);
+        }
     }
 }
 
 
 void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
 {
-    if( mtxHandle == NULL || pthread_mutex_unlock( (pthread_mutex_t *)mtxHandle ) != EOK ) {
-        panic(PanicHandler::Panic_MutexErr);
+    if (mtxHandle != NULL)
+    {
+        if (pthread_mutex_unlock(&MutexHolderType::castTo(mtxHandle)->fInstance))
+        {
+            panic(PanicHandler::Panic_MutexErr);
+        }
     }
 }
 
@@ -340,9 +363,9 @@
 XMLNetAccessor* XMLPlatformUtils::makeNetAccessor()
 {
 #if defined (XML_USE_NETACCESSOR_LIBWWW)
-    return new LibWWWNetAccessor();
+    return new (fgMemoryManager) LibWWWNetAccessor();
 #else 
-    return new SocketNetAccessor();
+    return new (fgMemoryManager) SocketNetAccessor();
 #endif
 }
 
@@ -355,9 +378,9 @@
 XMLMsgLoader* XMLPlatformUtils::loadAMsgSet(const XMLCh* const msgDomain)
 {
 #if defined (XML_USE_ICU_MESSAGELOADER)
-    return new ICUMsgLoader(msgDomain);
+    return new (fgMemoryManager) ICUMsgLoader(msgDomain);
 #else
-    return new InMemMsgLoader(msgDomain);
+    return new (fgMemoryManager) InMemMsgLoader(msgDomain);
 #endif
 }
 
@@ -371,9 +394,9 @@
 XMLTransService* XMLPlatformUtils::makeTransService()
 {
 #if defined (XML_USE_ICU_TRANSCODER)
-    return new ICUTransService;
+    return new (fgMemoryManager) ICUTransService;
 #elif defined (XML_USE_GNU_TRANSCODER)
-    return new IconvGNUTransService;
+    return new (fgMemoryManager) IconvGNUTransService;
 #else
     #error You must provide a transcoding service implementation
 #endif

Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp Sat Jun  4 12:49:30 2005
@@ -49,6 +49,7 @@
 #include    <xercesc/util/PlatformUtils.hpp>
 #include    <xercesc/util/RuntimeException.hpp>
 #include    <xercesc/util/Mutexes.hpp>
+#include    <xercesc/util/XMLHolder.hpp>
 #include    <xercesc/util/XMLString.hpp>
 #include    <xercesc/util/XMLUniDefs.hpp>
 #include    <xercesc/util/XMLUni.hpp>
@@ -90,9 +91,9 @@
 XMLNetAccessor* XMLPlatformUtils::makeNetAccessor()
 {
 #if defined (XML_USE_NETACCESSOR_LIBWWW)
-    return new LibWWWNetAccessor();
+    return new (fgMemoryManager) LibWWWNetAccessor();
 #elif defined (XML_USE_NETACCESSOR_SOCKET)
-    return new SocketNetAccessor();
+    return new (fgMemoryManager) SocketNetAccessor();
 #else
     return 0;
 #endif
@@ -111,11 +112,11 @@
     try
     {
 #if defined (XML_USE_ICU_MESSAGELOADER)
-        retVal = new ICUMsgLoader(msgDomain);
+        retVal = new (fgMemoryManager) ICUMsgLoader(msgDomain);
 #elif defined (XML_USE_ICONV_MESSAGELOADER)
-        retVal = new MsgCatalogLoader(msgDomain);
+        retVal = new (fgMemoryManager) MsgCatalogLoader(msgDomain);
 #else
-        retVal = new InMemMsgLoader(msgDomain);
+        retVal = new (fgMemoryManager) InMemMsgLoader(msgDomain);
 #endif
     }
     catch(const OutOfMemoryException&)
@@ -140,15 +141,15 @@
 
 #if defined (XML_USE_ICU_TRANSCODER)
 {
-    return new ICUTransService;
+    return new (fgMemoryManager) ICUTransService;
 }
 #elif defined (XML_USE_ICONV_TRANSCODER)
 {
-    return new IconvTransService;
+    return new (fgMemoryManager) IconvTransService;
 }
 #else // Use Native transcoding service
 {
-    return new IconvTransService;
+    return new (fgMemoryManager) IconvTransService;
 
 }
 #endif
@@ -389,7 +390,9 @@
 //  XMLPlatformUtils: Platform init method
 // ---------------------------------------------------------------------------
 
-static pthread_mutex_t* gAtomicOpMutex =0 ;
+typedef XMLHolder<pthread_mutex_t>  MutexHolderType;
+
+static MutexHolderType* gAtomicOpMutex = 0;
 
 void XMLPlatformUtils::platformInit()
 {
@@ -401,42 +404,41 @@
     // circular dependency between compareAndExchange() and
     // mutex creation that must be broken.
 
-    gAtomicOpMutex = new pthread_mutex_t;
+    gAtomicOpMutex = new (fgMemoryManager) MutexHolderType;
 
 #if defined(XML_USE_DCE)
-    if (pthread_mutex_init(gAtomicOpMutex, pthread_mutexattr_default)) {
-	delete gAtomicOpMutex;
-	gAtomicOpMutex = 0;
-        panic( PanicHandler::Panic_SystemInit );
-    }
+    if (pthread_mutex_init(&gAtomicOpMutex->fInstance, pthread_mutexattr_default)) {
 #else // XML_USE_DCE
-    if (pthread_mutex_init(gAtomicOpMutex, NULL)) {
-	delete gAtomicOpMutex;
-	gAtomicOpMutex = 0;
+    if (pthread_mutex_init(&gAtomicOpMutex->fInstance, NULL)) {
+#endif // XML_USE_DCE
+	    delete gAtomicOpMutex;
+	    gAtomicOpMutex = 0;
         panic( PanicHandler::Panic_SystemInit );
     }
-#endif // XML_USE_DCE
 }
 
 #ifndef XML_USE_DCE
 // inlining the class with dce threading causes segmentation fault
-class  RecursiveMutex
+class  RecursiveMutex : public XMemory
 {
 public:
-    pthread_mutex_t   mutex;
-    int               recursionCount;
-    pthread_t         tid;
-
-    RecursiveMutex() {
+    pthread_mutex_t         mutex;
+    int                     recursionCount;
+    pthread_t               tid;
+    MemoryManager* const    fMemoryManager;
+
+    RecursiveMutex(MemoryManager* manager) :
+        mutex(),
+        recursionCount(0),
+        tid(0),
+        fMemoryManager(manager) {
                if (pthread_mutex_init(&mutex, NULL))
                    XMLPlatformUtils::panic(PanicHandler::Panic_MutexErr);
-                       recursionCount = 0;
-                       tid = 0;
                      }
 
     ~RecursiveMutex() {
             if (pthread_mutex_destroy(&mutex))
-                ThrowXMLwithMemMgr(XMLPlatformUtilsException, XMLExcepts::Mutex_CouldNotDestroy, XMLPlatformUtils::fgMemoryManager);
+                ThrowXMLwithMemMgr(XMLPlatformUtilsException, XMLExcepts::Mutex_CouldNotDestroy, fMemoryManager);
                       }
 
      void lock()      {
@@ -463,25 +465,27 @@
    };
 #endif // ifndef XML_USE_DCE
 
-void* XMLPlatformUtils::makeMutex()
+void* XMLPlatformUtils::makeMutex(MemoryManager* manager)
 {
 #if defined(XML_USE_DCE)
-    pthread_mutex_t* mutex = new pthread_mutex_t;
-    if (mutex ==  NULL)
+
+    MutexHolderType* const  holder = new (manager) MutexHolderType;
+
+    if (holder ==  NULL)
     {
         panic(PanicHandler::Panic_MutexErr);
     }
     pthread_mutexattr_t attr;
     pthread_mutexattr_create(&attr);
     pthread_mutexattr_setkind_np(&attr, MUTEX_RECURSIVE_NP);
-    if (pthread_mutex_init(mutex, attr))
+    if (pthread_mutex_init(&holder->fInstance, attr))
     {
         panic(PanicHandler::Panic_MutexErr);
     }
     pthread_mutexattr_delete(&attr);
-    return (void*)(mutex);
+    return holder;
 #else
-    return new RecursiveMutex;
+    return new (manager) RecursiveMutex(manager);
 #endif
 }
 
@@ -491,8 +495,8 @@
     if (mtxHandle == NULL)
         return;
 #if defined(XML_USE_DCE)
-    pthread_mutex_t *rm = (pthread_mutex_t *)mtxHandle;
-    pthread_mutex_destroy(rm);
+    MutexHolderType *rm = MutexHolderType::castTo(mtxHandle);
+    pthread_mutex_destroy(&rm->fInstance);
 #else
     RecursiveMutex *rm = (RecursiveMutex *)mtxHandle;
 #endif
@@ -505,8 +509,9 @@
     if (mtxHandle == NULL)
         return;
 #if defined(XML_USE_DCE)
-    pthread_mutex_t *rm = (pthread_mutex_t *)mtxHandle;
-    pthread_mutex_lock(rm);
+    MutexHolderType *rm = MutexHolderType::castTo(mtxHandle);
+
+    pthread_mutex_lock(&rm->fInstance);
 #else
     RecursiveMutex *rm = (RecursiveMutex *)mtxHandle;
     rm->lock();
@@ -518,8 +523,9 @@
     if (mtxHandle == NULL)
         return;
 #if defined(XML_USE_DCE)
-    pthread_mutex_t *rm = (pthread_mutex_t *)mtxHandle;
-    pthread_mutex_unlock(rm);
+    MutexHolderType *rm = MutexHolderType::castTo(mtxHandle);
+
+    pthread_mutex_unlock(&rm->fInstance);
 #else
     RecursiveMutex *rm = (RecursiveMutex *)mtxHandle;
     rm->unlock();
@@ -541,14 +547,14 @@
     // the below calls are temporarily made till the above functions are part of user library
     // Currently its supported only in the kernel mode
 
-    if (pthread_mutex_lock( gAtomicOpMutex))
+    if (pthread_mutex_lock(&gAtomicOpMutex->fInstance))
         panic(PanicHandler::Panic_SynchronizationErr);
 
     void *retVal = *toFill;
     if (*toFill == toCompare)
               *toFill = (void *)newValue;
 
-    if (pthread_mutex_unlock( gAtomicOpMutex))
+    if (pthread_mutex_unlock(&gAtomicOpMutex->fInstance))
         panic(PanicHandler::Panic_SynchronizationErr);
 
     return retVal;
@@ -558,12 +564,12 @@
 {
     //return (int)atomic_add_32_nv( (uint32_t*)&location, 1);
 
-    if (pthread_mutex_lock( gAtomicOpMutex))
+    if (pthread_mutex_lock(&gAtomicOpMutex->fInstance))
         panic(PanicHandler::Panic_SynchronizationErr);
 
     int tmp = ++location;
 
-    if (pthread_mutex_unlock( gAtomicOpMutex))
+    if (pthread_mutex_unlock(&gAtomicOpMutex->fInstance))
         panic(PanicHandler::Panic_SynchronizationErr);
 
     return tmp;
@@ -572,12 +578,12 @@
 {
     //return (int)atomic_add_32_nv( (uint32_t*)&location, -1);
 
-    if (pthread_mutex_lock( gAtomicOpMutex))
+    if (pthread_mutex_lock(&gAtomicOpMutex->fInstance))
         panic(PanicHandler::Panic_SynchronizationErr);
 
     int tmp = --location;
 
-    if (pthread_mutex_unlock( gAtomicOpMutex))
+    if (pthread_mutex_unlock(&gAtomicOpMutex->fInstance))
         panic(PanicHandler::Panic_SynchronizationErr);
 
     return tmp;
@@ -589,20 +595,20 @@
 {
 }
 
-void XMLPlatformUtils::closeMutex(void* const mtxHandle)
+void XMLPlatformUtils::closeMutex(void* const)
 {
 }
 
-void XMLPlatformUtils::lockMutex(void* const mtxHandle)
+void XMLPlatformUtils::lockMutex(void* const)
 {
 }
 
-void* XMLPlatformUtils::makeMutex()
+void* XMLPlatformUtils::makeMutex(MemoryManager*)
 {
         return 0;
 }
 
-void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
+void XMLPlatformUtils::unlockMutex(void* const)
 {
 }
 
@@ -638,7 +644,7 @@
 void XMLPlatformUtils::platformTerm()
 {
 #if !defined(APP_NO_THREADS)
-	pthread_mutex_destroy(gAtomicOpMutex);
+	pthread_mutex_destroy(&gAtomicOpMutex->fInstance);
     delete gAtomicOpMutex;
 	gAtomicOpMutex = 0;
 #endif

Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Tandem/TandemPlatformUtils.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Tandem/TandemPlatformUtils.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Tandem/TandemPlatformUtils.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Tandem/TandemPlatformUtils.cpp Sat Jun  4 12:49:30 2005
@@ -94,6 +94,7 @@
 #include    <sys/timeb.h>
 #include    <string.h>
 #include    <xercesc/util/OutOfMemoryException.hpp>
+#include    <xercesc/util/XMLHolder.hpp>
 
 #if defined (XML_USE_ICU_MESSAGELOADER)
     #include <xercesc/util/MsgLoaders/ICU/ICUMsgLoader.hpp>
@@ -123,11 +124,11 @@
     try
     {
 #if defined (XML_USE_ICU_MESSAGELOADER)
-        retVal = new ICUMsgLoader(msgDomain);
+        retVal = new (fgMemoryManager) ICUMsgLoader(msgDomain);
 #elif defined (XML_USE_ICONV_MESSAGELOADER)
-        retVal = new MsgCatalogLoader(msgDomain);
+        retVal = new (fgMemoryManager) MsgCatalogLoader(msgDomain);
 #else
-        retVal = new InMemMsgLoader(msgDomain);
+        retVal = new (fgMemoryManager) InMemMsgLoader(msgDomain);
 #endif
     }
     catch(const OutOfMemoryException&)
@@ -312,49 +313,60 @@
 // -----------------------------------------------------------------------
 //  Mutex methods
 // -----------------------------------------------------------------------
+
+typedef XMLHolder<pthread_mutex_t>  MutexHolderType;
+
 void XMLPlatformUtils::closeMutex(void* const mtxHandle)
 {
-    if (mtxHandle == NULL)
-        return;
-    if (pthread_mutex_destroy( (pthread_mutex_t*)mtxHandle))
+    if (mtxHandle != NULL)
     {
-        throw XMLPlatformUtilsException("Could not destroy a mutex");
+        MutexHolderType* const  holder =
+            MutexHolderType::castTo(mtxHandle);
+
+        if (pthread_mutex_destroy(&holder->fInstance))
+        {
+            delete holder;
+
+            ThrowXMLwithMemMgr(XMLPlatformUtilsException,
+                     XMLExcepts::Mutex_CouldNotDestroy, fgMemoryManager);
+        }
+        delete holder;
     }
-    if ( (pthread_mutex_t*)mtxHandle)
-        delete (pthread_mutex_t*) mtxHandle;
 }
+
 void XMLPlatformUtils::lockMutex(void* const mtxHandle)
 {
-    if (mtxHandle == NULL)
-        return;
-    if (pthread_mutex_lock( (pthread_mutex_t*)mtxHandle))
+    if (mtxHandle != NULL)
     {
-        throw XMLPlatformUtilsException("Could not lock a mutex");
+        if (pthread_mutex_lock(&MutexHolderType::castTo(mtxHandle)->fInstance))
+        {
+            panic(PanicHandler::Panic_MutexErr);
+        }
     }
-
 }
-void* XMLPlatformUtils::makeMutex()
+
+void* XMLPlatformUtils::makeMutex(MemoryManager* manager)
 {
-    pthread_mutex_t* mutex = new pthread_mutex_t;
-    if (mutex == NULL)
-    {
-        throw XMLPlatformUtilsException("Could not initialize a mutex");
-    }
+    MutexHolderType* const  holder = new (manager) MutexHolderType;
 
-    if (pthread_mutex_init(mutex, NULL))
+    if (pthread_mutex_init(&holder->fInstance, NULL))
     {
-        throw XMLPlatformUtilsException("Could not create a mutex");
+        delete holder;
+
+        panic(PanicHandler::Panic_MutexErr);
     }
 
-    return (void*)(mutex);
+    return holder;
 }
+
 void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
 {
-    if (mtxHandle == NULL)
-        return;
-    if (pthread_mutex_unlock( (pthread_mutex_t*)mtxHandle))
+    if (mtxHandle != NULL)
     {
-        throw XMLPlatformUtilsException("Could not unlock a mutex");
+        if (pthread_mutex_unlock(&MutexHolderType::castTo(mtxHandle)->fInstance))
+        {
+            panic(PanicHandler::Panic_MutexErr);
+        }
     }
 }
 

Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Tru64/Tru64PlatformUtils.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Tru64/Tru64PlatformUtils.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Tru64/Tru64PlatformUtils.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Tru64/Tru64PlatformUtils.cpp Sat Jun  4 12:49:30 2005
@@ -35,6 +35,7 @@
 #include    <xercesc/util/PlatformUtils.hpp>
 #include    <xercesc/util/RuntimeException.hpp>
 #include    <xercesc/util/Mutexes.hpp>
+#include    <xercesc/util/XMLHolder.hpp>
 #include    <xercesc/util/XMLString.hpp>
 #include    <xercesc/util/XMLUni.hpp>
 #include    <xercesc/util/XMLUniDefs.hpp>
@@ -83,11 +84,11 @@
 XMLNetAccessor* XMLPlatformUtils::makeNetAccessor()
 #if defined (XML_USE_NETACCESSOR_LIBWWW)
 {
-    return new LibWWWNetAccessor();
+    return new (fgMemoryManager) LibWWWNetAccessor();
 }
 #elif defined (XML_USE_NETACCESSOR_SOCKET)
 {
-    return new SocketNetAccessor();
+    return new (fgMemoryManager) SocketNetAccessor();
 }
 #else
 {
@@ -106,11 +107,11 @@
   try
   {
 #if defined (XML_USE_ICU_MESSAGELOADER)
-    retVal = new ICUMsgLoader(msgDomain);
+    retVal = new (fgMemoryManager) ICUMsgLoader(msgDomain);
 #elif defined (XML_USE_ICONV_MESSAGELOADER)
-    retVal = new MsgCatalogLoader(msgDomain);
+    retVal = new (fgMemoryManager) MsgCatalogLoader(msgDomain);
 #else
-    retVal = new InMemMsgLoader(msgDomain);
+    retVal = new (fgMemoryManager) InMemMsgLoader(msgDomain);
 #endif
   }
   catch(const OutOfMemoryException&)
@@ -134,15 +135,15 @@
 XMLTransService* XMLPlatformUtils::makeTransService()
 #if defined (XML_USE_ICU_TRANSCODER)
 {
-  return new ICUTransService;
+  return new (fgMemoryManager) ICUTransService;
 }
 #elif defined (XML_USE_ICONV_TRANSCODER)
 {
-  return new IconvTransService;
+  return new (fgMemoryManager) IconvTransService;
 }
 #else // Use Native transcoding service
 {
-  return new IconvTransService;
+  return new (fgMemoryManager) IconvTransService;
 }
 #endif
 
@@ -387,7 +388,9 @@
 //  XMLPlatformUtils: Platform init method
 // ---------------------------------------------------------------------------
 
-static pthread_mutex_t* gAtomicOpMutex =0 ;
+typedef XMLHolder<pthread_mutex_t>  MutexHolderType;
+
+static MutexHolderType* gAtomicOpMutex = 0;
 
 void XMLPlatformUtils::platformInit()
 {
@@ -399,9 +402,10 @@
   // circular dependency between compareAndExchange() and
   // mutex creation that must be broken.
 
-  gAtomicOpMutex = new pthread_mutex_t;	
+  gAtomicOpMutex = new (fgMemoryManager) MutexHolderType;
+
 
-  if (pthread_mutex_init(gAtomicOpMutex, NULL)) {
+  if (pthread_mutex_init(&gAtomicOpMutex->fInstance, NULL)) {
 	delete gAtomicOpMutex;
 	gAtomicOpMutex = 0;
     panic( PanicHandler::Panic_SystemInit );
@@ -420,19 +424,22 @@
   pthread_mutex_t   mutex;
   int               recursionCount;
   pthread_t         tid;
+  MemoryManager* const    fMemoryManager;
 
-  RecursiveMutex()
+  RecursiveMutex(MemoryManager* manager) :
+        mutex(),
+        recursionCount(0),
+        tid(0),
+        fMemoryManager(manager)
   {
     if (pthread_mutex_init(&mutex, NULL))
         XMLPlatformUtils::panic(PanicHandler::Panic_MutexErr);
-    recursionCount = 0;
-    tid = 0;
   }
 
   ~RecursiveMutex()
   {
     if (pthread_mutex_destroy(&mutex))
-      ThrowXMLwithMemMgr(XMLPlatformUtilsException, XMLExcepts::Mutex_CouldNotDestroy, XMLPlatformUtils::fgMemoryManager);
+      ThrowXMLwithMemMgr(XMLPlatformUtilsException, XMLExcepts::Mutex_CouldNotDestroy, fMemoryManager);
   }
 
   void lock()
@@ -460,9 +467,9 @@
   }
 };
 
-void* XMLPlatformUtils::makeMutex()
+void* XMLPlatformUtils::makeMutex(MemoryManager* manager)
 {
-  return new RecursiveMutex;
+  return new (manager) RecursiveMutex(manager);
 }
 
 
@@ -506,14 +513,14 @@
   // the below calls are temporarily made till the above functions are part of user library
   // Currently its supported only in the kernel mode
 
-  if (pthread_mutex_lock( gAtomicOpMutex))
+  if (pthread_mutex_lock( &gAtomicOpMutex->fInstance))
     panic(PanicHandler::Panic_SynchronizationErr);
 
   void *retVal = *toFill;
   if (*toFill == toCompare)
     *toFill = (void *)newValue;
 
-  if (pthread_mutex_unlock( gAtomicOpMutex))
+  if (pthread_mutex_unlock( &gAtomicOpMutex->fInstance))
     panic(PanicHandler::Panic_SynchronizationErr);
 
   return retVal;
@@ -523,12 +530,12 @@
 {
   //return (int)atomic_add_32_nv( (uint32_t*)&location, 1);
 
-  if (pthread_mutex_lock( gAtomicOpMutex))
+  if (pthread_mutex_lock( &gAtomicOpMutex->fInstance))
     panic(PanicHandler::Panic_SynchronizationErr);
 
   int tmp = ++location;
 
-  if (pthread_mutex_unlock( gAtomicOpMutex))
+  if (pthread_mutex_unlock( &gAtomicOpMutex->fInstance))
     panic(PanicHandler::Panic_SynchronizationErr);
 
   return tmp;
@@ -537,12 +544,12 @@
 {
   //return (int)atomic_add_32_nv( (uint32_t*)&location, -1);
 
-  if (pthread_mutex_lock( gAtomicOpMutex))
+  if (pthread_mutex_lock( &gAtomicOpMutex->fInstance))
     panic(PanicHandler::Panic_SynchronizationErr);
 	
   int tmp = --location;
 
-  if (pthread_mutex_unlock( gAtomicOpMutex))
+  if (pthread_mutex_unlock( &gAtomicOpMutex->fInstance))
     panic(PanicHandler::Panic_SynchronizationErr);
 
   return tmp;
@@ -555,20 +562,20 @@
    // do nothing
 }
 
-void XMLPlatformUtils::closeMutex(void* const mtxHandle)
+void XMLPlatformUtils::closeMutex(void* const)
 {
 }
 
-void XMLPlatformUtils::lockMutex(void* const mtxHandle)
+void XMLPlatformUtils::lockMutex(void* const)
 {
 }
 
-void* XMLPlatformUtils::makeMutex()
+void* XMLPlatformUtils::makeMutex(MemoryManager*)
 {
   return 0;
 }
 
-void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
+void XMLPlatformUtils::unlockMutex(void* const)
 {
 }
 
@@ -604,7 +611,7 @@
 void XMLPlatformUtils::platformTerm()
 {
 #if !defined (APP_NO_THREADS)
-	pthread_mutex_destroy(gAtomicOpMutex);
+	pthread_mutex_destroy(&gAtomicOpMutex->fInstance);
 	delete gAtomicOpMutex;
 	gAtomicOpMutex = 0;
 #endif

Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/UnixWare/UnixWarePlatformUtils.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/UnixWare/UnixWarePlatformUtils.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/UnixWare/UnixWarePlatformUtils.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/UnixWare/UnixWarePlatformUtils.cpp Sat Jun  4 12:49:30 2005
@@ -139,6 +139,7 @@
 #include    <xercesc/util/RuntimeException.hpp>
 #include    <xercesc/util/Janitor.hpp>
 #include    <xercesc/util/Mutexes.hpp>
+#include    <xercesc/util/XMLHolder.hpp>
 #include    <xercesc/util/XMLString.hpp>
 #include    <xercesc/util/XMLUniDefs.hpp>
 #include    <xercesc/util/XMLUni.hpp>
@@ -491,7 +492,9 @@
 // ---------------------------------------------------------------------------
 //  XMLPlatformUtils: Platform init method
 // ---------------------------------------------------------------------------
-static pthread_mutex_t* gAtomicOpMutex =0 ;
+typedef XMLHolder<pthread_mutex_t>  MutexHolderType;
+
+static MutexHolderType* gAtomicOpMutex = 0;
 
 void XMLPlatformUtils::platformInit()
 {
@@ -503,10 +506,14 @@
     // circular dependency between compareAndExchange() and
     // mutex creation that must be broken.
 
-    gAtomicOpMutex = new pthread_mutex_t;
+    gAtomicOpMutex = new (fgMemoryManager) MutexHolderType;
 
-    if (pthread_mutex_init(gAtomicOpMutex, NULL))
+    if (pthread_mutex_init(&gAtomicOpMutex->fInstance, NULL))
+    {
+        delete gAtomicOpMutex;
+        gAtomicOpMutex = 0;
         panic( PanicHandler::Panic_SystemInit );
+    }
 }
 
 class  RecursiveMutex : public XMemory
@@ -593,14 +600,14 @@
                     const void* const newValue ,
                     const void* const toCompare)
 {
-    if (pthread_mutex_lock( gAtomicOpMutex))
+    if (pthread_mutex_lock( &gAtomicOpMutex->fInstance))
         panic(PanicHandler::Panic_SynchronizationErr);
 
     void *retVal = *toFill;
     if (*toFill == toCompare)
               *toFill = (void *)newValue;
 
-    if (pthread_mutex_unlock( gAtomicOpMutex))
+    if (pthread_mutex_unlock( &gAtomicOpMutex->fInstance))
         panic(PanicHandler::Panic_SynchronizationErr);
 
 
@@ -609,12 +616,12 @@
 
 int XMLPlatformUtils::atomicIncrement(int &location)
 {
-    if (pthread_mutex_lock( gAtomicOpMutex))
+    if (pthread_mutex_lock( &gAtomicOpMutex->fInstance))
         panic(PanicHandler::Panic_SynchronizationErr);
 
     int tmp = ++location;
 
-    if (pthread_mutex_unlock( gAtomicOpMutex))
+    if (pthread_mutex_unlock( &gAtomicOpMutex->fInstance))
         panic(PanicHandler::Panic_SynchronizationErr);
 
     return tmp;
@@ -622,12 +629,12 @@
 
 int XMLPlatformUtils::atomicDecrement(int &location)
 {
-    if (pthread_mutex_lock( gAtomicOpMutex))
+    if (pthread_mutex_lock( &gAtomicOpMutex->fInstance))
         panic(PanicHandler::Panic_SynchronizationErr);
 
     int tmp = --location;
 
-    if (pthread_mutex_unlock( gAtomicOpMutex))
+    if (pthread_mutex_unlock( &gAtomicOpMutex->fInstance))
         panic(PanicHandler::Panic_SynchronizationErr);
 
     return tmp;
@@ -639,20 +646,20 @@
 {
 }
 
-void* XMLPlatformUtils::makeMutex()
+void* XMLPlatformUtils::makeMutex(MemoryManager*)
 {
 	return 0;
 }
 
-void XMLPlatformUtils::closeMutex(void* const mtxHandle)
+void XMLPlatformUtils::closeMutex(void* const)
 {
 }
 
-void XMLPlatformUtils::lockMutex(void* const mtxHandle)
+void XMLPlatformUtils::lockMutex(void* const)
 {
 }
 
-void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
+void XMLPlatformUtils::unlockMutex(void* const)
 {
 }
 
@@ -684,7 +691,7 @@
 {
 #if !defined (APP_NO_THREADS)
     // delete the mutex we created
-	pthread_mutex_destroy(gAtomicOpMutex);
+	pthread_mutex_destroy(&gAtomicOpMutex->fInstance);
     delete gAtomicOpMutex;
 	gAtomicOpMutex = 0;
 #endif

Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Win32/Win32PlatformUtils.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Win32/Win32PlatformUtils.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Win32/Win32PlatformUtils.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/Platforms/Win32/Win32PlatformUtils.cpp Sat Jun  4 12:49:30 2005
@@ -24,6 +24,8 @@
 #include <xercesc/util/Janitor.hpp>
 #include <xercesc/util/PlatformUtils.hpp>
 #include <xercesc/util/RuntimeException.hpp>
+#include <xercesc/util/XMemory.hpp>
+#include <xercesc/util/XMLHolder.hpp>
 #include <xercesc/util/XMLExceptMsgs.hpp>
 #include <xercesc/util/XMLString.hpp>
 #include <xercesc/util/XMLUniDefs.hpp>
@@ -638,34 +640,40 @@
 }
 
 
+typedef XMLHolder<CRITICAL_SECTION>  MutexHolderType;
+
 
 // ---------------------------------------------------------------------------
 //  Mutex methods
 // ---------------------------------------------------------------------------
 void XMLPlatformUtils::closeMutex(void* const mtxHandle)
 {
-    ::DeleteCriticalSection((LPCRITICAL_SECTION)mtxHandle);
-    delete (CRITICAL_SECTION*)mtxHandle;
+    MutexHolderType* const  holder = MutexHolderType::castTo(mtxHandle);
+
+    ::DeleteCriticalSection(&holder->fInstance);
+    delete holder;
 }
 
 
 void XMLPlatformUtils::lockMutex(void* const mtxHandle)
 {
-    ::EnterCriticalSection((LPCRITICAL_SECTION)mtxHandle);
+    ::EnterCriticalSection(&MutexHolderType::castTo(mtxHandle)->fInstance);
 }
 
 
-void* XMLPlatformUtils::makeMutex()
+void* XMLPlatformUtils::makeMutex(MemoryManager* manager)
 {
-    CRITICAL_SECTION* newCS = new CRITICAL_SECTION;
-    InitializeCriticalSection(newCS);
-    return newCS;
+    MutexHolderType* const  holder = new (manager) MutexHolderType;
+
+    InitializeCriticalSection(&holder->fInstance);
+
+    return holder;
 }
 
 
 void XMLPlatformUtils::unlockMutex(void* const mtxHandle)
 {
-    ::LeaveCriticalSection((LPCRITICAL_SECTION)mtxHandle);
+    ::LeaveCriticalSection(&MutexHolderType::castTo(mtxHandle)->fInstance);
 }
 
 
@@ -745,9 +753,9 @@
 XMLNetAccessor* XMLPlatformUtils::makeNetAccessor()
 {
 #if defined (XML_USE_NETACCESSOR_LIBWWW)
-    return new LibWWWNetAccessor();
+    return new (fgMemoryManager) LibWWWNetAccessor();
 #elif defined (XML_USE_NETACCESSOR_WINSOCK)
-    return new WinSockNetAccessor();
+    return new (fgMemoryManager) WinSockNetAccessor();
 #else
     return 0;
 #endif
@@ -762,11 +770,11 @@
 XMLMsgLoader* XMLPlatformUtils::loadAMsgSet(const XMLCh* const msgDomain)
 {
 #if defined (XML_USE_INMEM_MESSAGELOADER)
-    return new InMemMsgLoader(msgDomain);
+    return new (fgMemoryManager) InMemMsgLoader(msgDomain);
 #elif defined (XML_USE_WIN32_MSGLOADER)
-    return new Win32MsgLoader(msgDomain);
+    return new (fgMemoryManager) Win32MsgLoader(msgDomain);
 #elif defined (XML_USE_ICU_MESSAGELOADER)
-    return new ICUMsgLoader(msgDomain);
+    return new (fgMemoryManager) ICUMsgLoader(msgDomain);
 #else
     #error You must provide a message loader
 #endif
@@ -788,11 +796,11 @@
     //  to our DLL.
     //
 #if defined (XML_USE_ICU_TRANSCODER)
-    return new ICUTransService;
+    return new (fgMemoryManager) ICUTransService;
 #elif defined (XML_USE_WIN32_TRANSCODER)
-    return new Win32TransService;
+    return new (fgMemoryManager) Win32TransService;
 #elif defined (XML_USE_CYGWIN_TRANSCODER)
-    return new CygwinTransService;
+    return new (fgMemoryManager) CygwinTransService;
 #else
     #error You must provide a transcoding service implementation
 #endif

Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/SynchronizedStringPool.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/SynchronizedStringPool.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/SynchronizedStringPool.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/SynchronizedStringPool.cpp Sat Jun  4 12:49:30 2005
@@ -45,6 +45,7 @@
 
     XMLStringPool(modulus, manager)
     , fConstPool(constPool)
+    , fMutex(manager)
 {
 }
 

Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/XMLException.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/XMLException.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/XMLException.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/XMLException.cpp Sat Jun  4 12:49:30 2005
@@ -59,7 +59,7 @@
 
         if (!sScannerMutexRegistered)
         {
-            sMsgMutex = new XMLMutex;
+            sMsgMutex = new XMLMutex(XMLPlatformUtils::fgMemoryManager);
             msgMutexCleanup.registerCleanup(XMLException::reinitMsgMutex);
             sScannerMutexRegistered = true;
         }

Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RangeTokenMap.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RangeTokenMap.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RangeTokenMap.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RangeTokenMap.cpp Sat Jun  4 12:49:30 2005
@@ -128,7 +128,7 @@
         // If we got here first, then register it and set the registered flag
         if (!sRangeTokMapMutex)
         {
-            sRangeTokMapMutex = new XMLMutex;
+            sRangeTokMapMutex = new XMLMutex(XMLPlatformUtils::fgMemoryManager);
             rangeTokMapRegistryCleanup.registerCleanup(reinitRangeTokMapMutex);
         }
     }
@@ -142,7 +142,7 @@
 
 void XMLInitializer::initializeRangeTokenMap()
 {
-    RangeTokenMap::fInstance = new RangeTokenMap();
+    RangeTokenMap::fInstance = new RangeTokenMap(XMLPlatformUtils::fgMemoryManager);
     if (RangeTokenMap::fInstance)
     {
         rangeTokMapInstanceCleanup.registerCleanup(RangeTokenMap::reinitInstance);
@@ -170,17 +170,18 @@
 // ---------------------------------------------------------------------------
 //  RangeTokenMap: Constructors and Destructor
 // ---------------------------------------------------------------------------
-RangeTokenMap::RangeTokenMap() :
+RangeTokenMap::RangeTokenMap(MemoryManager* manager) :
     fTokenRegistry(0)
     , fRangeMap(0)
     , fCategories(0)
     , fTokenFactory(0)
+    , fMutex(manager)
 {
     try {
-        fTokenRegistry = new RefHashTableOf<RangeTokenElemMap>(109);
-        fRangeMap = new RefHashTableOf<RangeFactory>(29);
-        fCategories = new XMLStringPool(109);
-        fTokenFactory = new TokenFactory();
+        fTokenRegistry = new (manager) RefHashTableOf<RangeTokenElemMap>(109, manager);
+        fRangeMap = new (manager) RefHashTableOf<RangeFactory>(29, manager);
+        fCategories = new (manager) XMLStringPool(109, manager);
+        fTokenFactory = new (manager) TokenFactory(manager);
         initializeRegistry();
     }
     catch(...) {
@@ -362,7 +363,7 @@
 
         if (!fInstance)
         {
-            fInstance = new RangeTokenMap();
+            fInstance = new RangeTokenMap(XMLPlatformUtils::fgMemoryManager);
             rangeTokMapInstanceCleanup.registerCleanup(RangeTokenMap::reinitInstance);
         }
     }

Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RangeTokenMap.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RangeTokenMap.hpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RangeTokenMap.hpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RangeTokenMap.hpp Sat Jun  4 12:49:30 2005
@@ -107,7 +107,7 @@
     // -----------------------------------------------------------------------
     //  Constructor and destructors
     // -----------------------------------------------------------------------
-    RangeTokenMap();
+    RangeTokenMap(MemoryManager* manager);
     ~RangeTokenMap();
 
     // -----------------------------------------------------------------------

Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RegxParser.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RegxParser.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RegxParser.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RegxParser.cpp Sat Jun  4 12:49:30 2005
@@ -167,8 +167,6 @@
         return 0;
     }
 
-	XMLMutexLock lockInit(&fMutex);
-
 	fOptions = options;
 	fOffset = 0;
 	fNoGroups = 1;

Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RegxParser.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RegxParser.hpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RegxParser.hpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/regx/RegxParser.hpp Sat Jun  4 12:49:30 2005
@@ -29,7 +29,6 @@
 // ---------------------------------------------------------------------------
 #include <xercesc/util/RefVectorOf.hpp>
 #include <xercesc/util/XMLUniDefs.hpp>
-#include <xercesc/util/Mutexes.hpp>
 
 XERCES_CPP_NAMESPACE_BEGIN
 
@@ -203,7 +202,6 @@
 	XMLCh*                          fString;
 	RefVectorOf<ReferencePosition>* fReferences;
     TokenFactory*                   fTokenFactory;
-	XMLMutex						fMutex;
 };
 
 

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/DTD/DTDGrammar.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/DTD/DTDGrammar.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/DTD/DTDGrammar.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/DTD/DTDGrammar.cpp Sat Jun  4 12:49:30 2005
@@ -291,7 +291,7 @@
         {
             XMLMutexLock lock(XMLPlatformUtils::fgAtomicMutex);
             if (!sEntityPoolMutex)
-                sEntityPoolMutex = new XMLMutex;
+                sEntityPoolMutex = new XMLMutex(XMLPlatformUtils::fgMemoryManager);
         }
 
         // Use a faux scope to synchronize while we do this

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp Sat Jun  4 12:49:30 2005
@@ -375,7 +375,7 @@
         {
             XMLMutexLock lock(XMLPlatformUtils::fgAtomicMutex);
             if (!sBuiltInRegistryMutex)
-                sBuiltInRegistryMutex = new XMLMutex;
+                sBuiltInRegistryMutex = new XMLMutex(XMLPlatformUtils::fgMemoryManager);
         }
 
         // Use a faux scope to synchronize while we do this

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/ComplexTypeInfo.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/ComplexTypeInfo.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/ComplexTypeInfo.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/ComplexTypeInfo.cpp Sat Jun  4 12:49:30 2005
@@ -261,7 +261,7 @@
         {
             XMLMutexLock lock(XMLPlatformUtils::fgAtomicMutex);
             if (!sAnyTypeMutex)
-                sAnyTypeMutex = new XMLMutex;
+                sAnyTypeMutex = new XMLMutex(XMLPlatformUtils::fgMemoryManager);
         }
 
         // Use a faux scope to synchronize while we do this

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/GeneralAttributeCheck.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/GeneralAttributeCheck.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/GeneralAttributeCheck.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/GeneralAttributeCheck.cpp Sat Jun  4 12:49:30 2005
@@ -264,7 +264,7 @@
             XMLMutexLock lock(XMLPlatformUtils::fgAtomicMutex);
 
             if (!sGeneralAttCheckMutex)
-                sGeneralAttCheckMutex = new XMLMutex;
+                sGeneralAttCheckMutex = new XMLMutex(XMLPlatformUtils::fgMemoryManager);
         }
 
         // Use a faux scope to synchronize while we do this

Modified: xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/XSDErrorReporter.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/XSDErrorReporter.cpp?rev=180016&r1=180015&r2=180016&view=diff
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/XSDErrorReporter.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/XSDErrorReporter.cpp Sat Jun  4 12:49:30 2005
@@ -111,7 +111,7 @@
 
         if (!sErrRprtrMutex)
         {
-            sErrRprtrMutex = new XMLMutex;
+            sErrRprtrMutex = new XMLMutex(XMLPlatformUtils::fgMemoryManager);
             errRprtrMutexCleanup.registerCleanup(reinitErrRprtrMutex);
         }
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org