amassari 2004/07/23 07:35:03 Modified: c/src/xercesc/util/Transcoders/IconvGNU IconvGNUTransService.cpp Log: A global mutex was not cleaned up Revision Changes Path 1.13 +12 -0 xml-xerces/c/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.cpp Index: IconvGNUTransService.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- IconvGNUTransService.cpp 25 Feb 2004 14:53:24 -0000 1.12 +++ IconvGNUTransService.cpp 23 Jul 2004 14:35:03 -0000 1.13 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.13 2004/07/23 14:35:03 amassari + * A global mutex was not cleaned up + * * Revision 1.12 2004/02/25 14:53:24 peiyongz * Bug#27209: Xerces 2.5.0 does not build with option -t IconvGNU because of syntax errors! * @@ -114,6 +117,7 @@ #if !defined(APP_NO_THREADS) #include <xercesc/util/Mutexes.hpp> +#include <xercesc/util/XMLRegisterCleanup.hpp> #endif /* !APP_NO_THREADS */ XERCES_CPP_NAMESPACE_BEGIN @@ -122,6 +126,7 @@ // Iconv() access syncronization point static XMLMutex *gIconvMutex = NULL; +static XMLRegisterCleanup IconvGNUMutexCleanup; # define ICONV_LOCK XMLMutexLock lockConverter(gIconvMutex); #else /* APP_NO_THREADS */ @@ -502,6 +507,12 @@ // IconvGNUTransService: Constructors and Destructor // --------------------------------------------------------------------------- +void reinitIconvGNUMutex() +{ + delete gIconvMutex; + gIconvMutex = 0; +} + IconvGNUTransService::IconvGNUTransService() : IconvGNUWrapper(), fUnicodeCP(0) { @@ -511,6 +522,7 @@ gIconvMutex = new XMLMutex; if (gIconvMutex == NULL) XMLPlatformUtils::panic (PanicHandler::Panic_NoTransService); + IconvGNUMutexCleanup.registerCleanup(reinitIconvGNUMutex); } #endif
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]