Author: dbertoni
Date: Tue Jun 24 10:25:15 2008
New Revision: 671268

URL: http://svn.apache.org/viewvc?rev=671268&view=rev
Log:
Changes to propagate explicit MemoryManager instances into the transcoders.

Added:
    xerces/c/branches/dbertoni/transcoder/
      - copied from r670674, xerces/c/trunk/
Modified:
    xerces/c/branches/dbertoni/transcoder/src/xercesc/util/PlatformUtils.cpp
    xerces/c/branches/dbertoni/transcoder/src/xercesc/util/TransService.cpp
    xerces/c/branches/dbertoni/transcoder/src/xercesc/util/TransService.hpp
    
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp
    
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/ICU/ICUTransService.hpp
    
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
    
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp
    
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.cpp
    
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp
    
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp
    
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp
    
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp
    
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Win32/Win32TransService.hpp

Modified: 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/PlatformUtils.cpp
URL: 
http://svn.apache.org/viewvc/xerces/c/branches/dbertoni/transcoder/src/xercesc/util/PlatformUtils.cpp?rev=671268&r1=670674&r2=671268&view=diff
==============================================================================
--- xerces/c/branches/dbertoni/transcoder/src/xercesc/util/PlatformUtils.cpp 
(original)
+++ xerces/c/branches/dbertoni/transcoder/src/xercesc/util/PlatformUtils.cpp 
Tue Jun 24 10:25:15 2008
@@ -256,7 +256,7 @@
     //  that will be used internally by the XMLString class. If we cannot
     //  create one, then call the panic method.
     //
-    XMLLCPTranscoder* defXCode = 
XMLPlatformUtils::fgTransService->makeNewLCPTranscoder();
+    XMLLCPTranscoder* defXCode = 
XMLPlatformUtils::fgTransService->makeNewLCPTranscoder(fgMemoryManager);
     if (!defXCode)
         panic(PanicHandler::Panic_NoDefTranscoder);
     XMLString::initString(defXCode, fgMemoryManager);
@@ -438,15 +438,15 @@
        XMLTransService* tc = 0;
 
        #if defined   (XERCES_USE_TRANSCODER_ICU)
-               tc = new ICUTransService;
+               tc = new ICUTransService(fgMemoryManager);
        #elif defined (XERCES_USE_TRANSCODER_GNUICONV)
-               tc = new IconvGNUTransService;
+               tc = new IconvGNUTransService(fgMemoryManager);
        #elif defined (XERCES_USE_TRANSCODER_ICONV)
-               tc = new IconvTransService;
+               tc = new IconvTransService(fgMemoryManager);
        #elif defined (XERCES_USE_TRANSCODER_MACOSUNICODECONVERTER)
-               tc = new MacOSUnicodeConverter;
+               tc = new MacOSUnicodeConverter(fgMemoryManager);
        #elif defined (XERCES_USE_TRANSCODER_WINDOWS)
-               tc = new Win32TransService;
+               tc = new Win32TransService(fgMemoryManager);
        #else
                #error No Transcoder configured for platform! You must 
configure it.
        #endif

Modified: 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/TransService.cpp
URL: 
http://svn.apache.org/viewvc/xerces/c/branches/dbertoni/transcoder/src/xercesc/util/TransService.cpp?rev=671268&r1=670674&r2=671268&view=diff
==============================================================================
--- xerces/c/branches/dbertoni/transcoder/src/xercesc/util/TransService.cpp 
(original)
+++ xerces/c/branches/dbertoni/transcoder/src/xercesc/util/TransService.cpp Tue 
Jun 24 10:25:15 2008
@@ -22,6 +22,7 @@
 //  Includes
 // ---------------------------------------------------------------------------
 #include <xercesc/util/Janitor.hpp>
+#include <xercesc/util/TransService.hpp>
 #include <xercesc/util/XML88591Transcoder.hpp>
 #include <xercesc/util/XMLASCIITranscoder.hpp>
 #include <xercesc/util/XMLChTranscoder.hpp>

Modified: 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/TransService.hpp
URL: 
http://svn.apache.org/viewvc/xerces/c/branches/dbertoni/transcoder/src/xercesc/util/TransService.hpp?rev=671268&r1=670674&r2=671268&view=diff
==============================================================================
--- xerces/c/branches/dbertoni/transcoder/src/xercesc/util/TransService.hpp 
(original)
+++ xerces/c/branches/dbertoni/transcoder/src/xercesc/util/TransService.hpp Tue 
Jun 24 10:25:15 2008
@@ -121,7 +121,12 @@
 
     virtual const XMLCh* getId() const = 0;
 
-    virtual XMLLCPTranscoder* makeNewLCPTranscoder() = 0;
+    // -----------------------------------------------------------------------
+    // Create a new transcoder for the local code page.
+    //
+    //  @param manager The memory manager to use.
+    // -----------------------------------------------------------------------
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder(MemoryManager* manager) = 0;
 
     virtual bool supportsSrcOfs() const = 0;
 

Modified: 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp
URL: 
http://svn.apache.org/viewvc/xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp?rev=671268&r1=670674&r2=671268&view=diff
==============================================================================
--- 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp
 (original)
+++ 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp
 Tue Jun 24 10:25:15 2008
@@ -136,7 +136,7 @@
 // ---------------------------------------------------------------------------
 //  ICUTransService: Constructors and Destructor
 // ---------------------------------------------------------------------------
-ICUTransService::ICUTransService()
+ICUTransService::ICUTransService(MemoryManager* manager)
 {
 #if (U_ICU_VERSION_MAJOR_NUM > 2 || (U_ICU_VERSION_MAJOR_NUM == 2 && 
U_ICU_VERSION_MINOR_NUM >= 6))
     UErrorCode errorCode=U_ZERO_ERROR;
@@ -281,7 +281,7 @@
     return gMyServiceId;
 }
 
-XMLLCPTranscoder* ICUTransService::makeNewLCPTranscoder()
+XMLLCPTranscoder* ICUTransService::makeNewLCPTranscoder(MemoryManager* manager)
 {
     //
     //  Try to create a default converter. If it fails, return a null
@@ -294,7 +294,7 @@
         return 0;
 
     // That went ok, so create an ICU LCP transcoder wrapper and return it
-    return new ICULCPTranscoder(converter);
+    return new (manager) ICULCPTranscoder(converter);
 }
 
 

Modified: 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/ICU/ICUTransService.hpp
URL: 
http://svn.apache.org/viewvc/xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/ICU/ICUTransService.hpp?rev=671268&r1=670674&r2=671268&view=diff
==============================================================================
--- 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/ICU/ICUTransService.hpp
 (original)
+++ 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/ICU/ICUTransService.hpp
 Tue Jun 24 10:25:15 2008
@@ -36,7 +36,7 @@
     // -----------------------------------------------------------------------
     //  Constructors and Destructor
     // -----------------------------------------------------------------------
-    ICUTransService();
+    ICUTransService(MemoryManager* manager);
     ~ICUTransService();
 
 
@@ -58,7 +58,7 @@
 
     virtual const XMLCh* getId() const;
 
-    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder(MemoryManager* manager);
 
     virtual bool supportsSrcOfs() const;
 

Modified: 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
URL: 
http://svn.apache.org/viewvc/xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp?rev=671268&r1=670674&r2=671268&view=diff
==============================================================================
--- 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
 (original)
+++ 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
 Tue Jun 24 10:25:15 2008
@@ -89,7 +89,7 @@
 // ---------------------------------------------------------------------------
 //  IconvTransService: Constructors and Destructor
 // ---------------------------------------------------------------------------
-IconvTransService::IconvTransService()
+IconvTransService::IconvTransService(MemoryManager* /* manager */)
 {
 }
 
@@ -161,10 +161,10 @@
     return gMyServiceId;
 }
 
-XMLLCPTranscoder* IconvTransService::makeNewLCPTranscoder()
+XMLLCPTranscoder* IconvTransService::makeNewLCPTranscoder(MemoryManager* 
manager)
 {
     // Just allocate a new transcoder of our type
-    return new IconvLCPTranscoder;
+    return new (manager) IconvLCPTranscoder;
 }
 
 bool IconvTransService::supportsSrcOfs() const

Modified: 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp
URL: 
http://svn.apache.org/viewvc/xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp?rev=671268&r1=670674&r2=671268&view=diff
==============================================================================
--- 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp
 (original)
+++ 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp
 Tue Jun 24 10:25:15 2008
@@ -32,7 +32,7 @@
     // -----------------------------------------------------------------------
     //  Constructors and Destructor
     // -----------------------------------------------------------------------
-    IconvTransService();
+    IconvTransService(MemoryManager* manager);
     ~IconvTransService();
 
 
@@ -54,7 +54,7 @@
 
     virtual const XMLCh* getId() const;
 
-    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder(MemoryManager* manager);
 
     virtual bool supportsSrcOfs() const;
 

Modified: 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.cpp
URL: 
http://svn.apache.org/viewvc/xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.cpp?rev=671268&r1=670674&r2=671268&view=diff
==============================================================================
--- 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.cpp
 (original)
+++ 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.cpp
 Tue Jun 24 10:25:15 2008
@@ -161,9 +161,9 @@
 // ports collection). The following is a wrapper around the iconv().
 //----------------------------------------------------------------------------
 
-IconvGNUWrapper::IconvGNUWrapper ()
+IconvGNUWrapper::IconvGNUWrapper (MemoryManager* manager)
     : fUChSize(0), fUBO(LITTLE_ENDIAN),
-      fCDTo((iconv_t)-1), fCDFrom((iconv_t)-1)
+      fCDTo((iconv_t)-1), fCDFrom((iconv_t)-1), fMutex(manager)
 {
 }
 
@@ -383,8 +383,8 @@
 //  IconvGNUTransService: Constructors and Destructor
 // ---------------------------------------------------------------------------
 
-IconvGNUTransService::IconvGNUTransService()
-    : IconvGNUWrapper(), fUnicodeCP(0)
+IconvGNUTransService::IconvGNUTransService(MemoryManager* manager)
+    : IconvGNUWrapper(manager), fUnicodeCP(0)
 {
     // Try to obtain local (host) characterset from the setlocale
     // and through the environment. Do not call setlocale(LC_*, "")!
@@ -546,9 +546,9 @@
     return gMyServiceId;
 }
 
-XMLLCPTranscoder* IconvGNUTransService::makeNewLCPTranscoder()
+XMLLCPTranscoder* IconvGNUTransService::makeNewLCPTranscoder(MemoryManager* 
manager)
 {
-    return new IconvGNULCPTranscoder (cdFrom(), cdTo(), uChSize(), UBO());
+    return new (manager) IconvGNULCPTranscoder (cdFrom(), cdTo(), uChSize(), 
UBO());
 }
 
 bool IconvGNUTransService::supportsSrcOfs() const

Modified: 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp
URL: 
http://svn.apache.org/viewvc/xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp?rev=671268&r1=670674&r2=671268&view=diff
==============================================================================
--- 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp
 (original)
+++ 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp
 Tue Jun 24 10:25:15 2008
@@ -109,8 +109,8 @@
 
 protected:
 
-    // Hidden default constructor
-    IconvGNUWrapper();
+    // Hidden constructor
+    IconvGNUWrapper(MemoryManager* manager);
 
     // Private data accessors
     inline void        setCDTo (iconv_t cd) { fCDTo = cd; }
@@ -158,7 +158,7 @@
     // -----------------------------------------------------------------------
     //  Constructors and Destructor
     // -----------------------------------------------------------------------
-    IconvGNUTransService();
+    IconvGNUTransService(MemoryManager* manager);
     ~IconvGNUTransService();
 
 
@@ -180,7 +180,7 @@
 
     virtual const XMLCh* getId() const;
 
-    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder(MemoryManager* manager);
 
     virtual bool supportsSrcOfs() const;
 

Modified: 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp
URL: 
http://svn.apache.org/viewvc/xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp?rev=671268&r1=670674&r2=671268&view=diff
==============================================================================
--- 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp
 (original)
+++ 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.cpp
 Tue Jun 24 10:25:15 2008
@@ -88,7 +88,7 @@
 // ---------------------------------------------------------------------------
 //  MacOSUnicodeConverter: Constructors and Destructor
 // ---------------------------------------------------------------------------
-MacOSUnicodeConverter::MacOSUnicodeConverter()
+MacOSUnicodeConverter::MacOSUnicodeConverter(MemoryManager* manager)
   : fCollator(NULL)
 {
        //      Test for presense of unicode collation functions
@@ -255,11 +255,10 @@
 }
 
 
-XMLLCPTranscoder* MacOSUnicodeConverter::makeNewLCPTranscoder()
+XMLLCPTranscoder* MacOSUnicodeConverter::makeNewLCPTranscoder(MemoryManager* 
manager)
 {
        XMLLCPTranscoder* result = NULL;
        OSStatus status = noErr;
-    MemoryManager* manager = XMLPlatformUtils::fgMemoryManager;
        
        //  Discover the text encoding to use for the LCP
        TextEncoding lcpTextEncoding = discoverLCPEncoding();
@@ -275,7 +274,7 @@
     {
         //  Pass the XMLTranscoder over to the LPC transcoder
         if (resValue == XMLTransService::Ok)
-            result = new MacOSLCPTranscoder(xmlTrans, manager);
+            result = new (manager) MacOSLCPTranscoder(xmlTrans, manager);
         else
             delete xmlTrans;
     }

Modified: 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp
URL: 
http://svn.apache.org/viewvc/xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp?rev=671268&r1=670674&r2=671268&view=diff
==============================================================================
--- 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp
 (original)
+++ 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp
 Tue Jun 24 10:25:15 2008
@@ -68,7 +68,7 @@
 
     virtual const XMLCh* getId() const;
 
-    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder(MemoryManager* manager);
 
     virtual bool supportsSrcOfs() const;
 
@@ -79,7 +79,7 @@
     // -----------------------------------------------------------------------
     //  Hidden constructors
     // -----------------------------------------------------------------------
-    MacOSUnicodeConverter();
+    MacOSUnicodeConverter(MemoryManager* manager);
 
     // -----------------------------------------------------------------------
     //  Protected virtual methods

Modified: 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp
URL: 
http://svn.apache.org/viewvc/xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp?rev=671268&r1=670674&r2=671268&view=diff
==============================================================================
--- 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp
 (original)
+++ 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp
 Tue Jun 24 10:25:15 2008
@@ -147,12 +147,14 @@
     (
         const   XMLCh* const    encodingName
         , const unsigned int    ieId
+        , MemoryManager*        manager
     );
 
     CPMapEntry
     (
         const   char* const     encodingName
         , const unsigned int    ieId
+        , MemoryManager*        manager
     );
 
     ~CPMapEntry();
@@ -187,21 +189,24 @@
     // -----------------------------------------------------------------------
     XMLCh*          fEncodingName;
     unsigned int    fIEId;
+    MemoryManager*  fManager;
 };
 
 // ---------------------------------------------------------------------------
 //  CPMapEntry: Constructors and Destructor
 // ---------------------------------------------------------------------------
 CPMapEntry::CPMapEntry( const   char* const     encodingName
-                        , const unsigned int    ieId) :
+                        , const unsigned int    ieId
+                        , MemoryManager*        manager) :
     fEncodingName(0)
     , fIEId(ieId)
+    , fManager(manager)
 {
     // Transcode the name to Unicode and store that copy
     int targetLen=::MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, encodingName, 
-1, NULL, 0);
     if(targetLen!=0)
     {
-        fEncodingName = (XMLCh*) XMLPlatformUtils::fgMemoryManager->allocate
+        fEncodingName = (XMLCh*) fManager->allocate
         (
             (targetLen + 1) * sizeof(XMLCh)
         );//new XMLCh[targetLen + 1];
@@ -217,12 +222,14 @@
 }
 
 CPMapEntry::CPMapEntry( const   XMLCh* const    encodingName
-                        , const unsigned int    ieId) :
+                        , const unsigned int    ieId
+                        , MemoryManager*        manager) :
 
     fEncodingName(0)
     , fIEId(ieId)
+    , fManager(manager)
 {
-    fEncodingName = XMLString::replicate(encodingName, 
XMLPlatformUtils::fgMemoryManager);
+    fEncodingName = XMLString::replicate(encodingName, fManager);
 
     //
     //  Upper case it because we are using a hash table and need to be
@@ -233,7 +240,7 @@
 
 CPMapEntry::~CPMapEntry()
 {
-    XMLPlatformUtils::fgMemoryManager->deallocate(fEncodingName);//delete [] 
fEncodingName;
+    fManager->deallocate(fEncodingName);//delete [] fEncodingName;
 }
 
 
@@ -262,9 +269,11 @@
 // ---------------------------------------------------------------------------
 //  Win32TransService: Constructors and Destructor
 // ---------------------------------------------------------------------------
-Win32TransService::Win32TransService()
+Win32TransService::Win32TransService(MemoryManager* manager) :
+    fCPMap(NULL)
+    , fManager(manager)
 {
-    fCPMap = new RefHashTableOf<CPMapEntry>(109);
+    fCPMap = new (manager) RefHashTableOf<CPMapEntry>(109, manager);
 
     //
     //  Open up the registry key that contains the info we want. Note that,
@@ -377,7 +386,7 @@
                     continue;
                 }
 
-                CPMapEntry* newEntry = new CPMapEntry(nameBuf, IEId);
+                CPMapEntry* newEntry = new (fManager) CPMapEntry(nameBuf, 
IEId, fManager);
                 fCPMap->put((void*)newEntry->getEncodingName(), newEntry);
             }
         }
@@ -431,7 +440,7 @@
             int targetLen = ::MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, 
aliasBuf, -1, NULL, 0);
             if(targetLen!=0)
             {
-                XMLCh* uniAlias = (XMLCh*) 
XMLPlatformUtils::fgMemoryManager->allocate
+                XMLCh* uniAlias = (XMLCh*) fManager->allocate
                 (
                     (targetLen + 1) * sizeof(XMLCh)
                 );//new XMLCh[targetLen + 1];
@@ -446,7 +455,7 @@
                     int targetLen = ::MultiByteToWideChar(CP_ACP, 
MB_PRECOMPOSED, nameBuf, -1, NULL, 0);
                     if(targetLen!=0)
                     {
-                        XMLCh* uniName = (XMLCh*) 
XMLPlatformUtils::fgMemoryManager->allocate
+                        XMLCh* uniName = (XMLCh*) fManager->allocate
                         (
                             (targetLen + 1) * sizeof(XMLCh)
                         );//new XMLCh[targetLen + 1];
@@ -461,14 +470,14 @@
                         //
                         if (::wcscmp(uniName, aliasedEntry->getEncodingName()))
                         {
-                            CPMapEntry* newEntry = new CPMapEntry(uniName, 
aliasedEntry->getIEEncoding());
+                            CPMapEntry* newEntry = new (fManager) 
CPMapEntry(uniName, aliasedEntry->getIEEncoding(), fManager);
                             fCPMap->put((void*)newEntry->getEncodingName(), 
newEntry);
                         }
 
-                        
XMLPlatformUtils::fgMemoryManager->deallocate(uniName);//delete [] uniName;
+                        fManager->deallocate(uniName);//delete [] uniName;
                     }
                 }
-                
XMLPlatformUtils::fgMemoryManager->deallocate(uniAlias);//delete [] uniAlias;
+                fManager->deallocate(uniAlias);//delete [] uniAlias;
             }
         }
 
@@ -478,7 +487,6 @@
 
     // And close the main key handle
     ::RegCloseKey(charsetKey);
-
 }
 
 Win32TransService::~Win32TransService()
@@ -510,10 +518,10 @@
     return gMyServiceId;
 }
 
-XMLLCPTranscoder* Win32TransService::makeNewLCPTranscoder()
+XMLLCPTranscoder* Win32TransService::makeNewLCPTranscoder(MemoryManager* 
manager)
 {
     // Just allocate a new LCP transcoder of our type
-    return new Win32LCPTranscoder;
+    return new (manager) Win32LCPTranscoder;
 }
 
 

Modified: 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Win32/Win32TransService.hpp
URL: 
http://svn.apache.org/viewvc/xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Win32/Win32TransService.hpp?rev=671268&r1=670674&r2=671268&view=diff
==============================================================================
--- 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Win32/Win32TransService.hpp
 (original)
+++ 
xerces/c/branches/dbertoni/transcoder/src/xercesc/util/Transcoders/Win32/Win32TransService.hpp
 Tue Jun 24 10:25:15 2008
@@ -43,7 +43,7 @@
     // -----------------------------------------------------------------------
     //  Constructors and Destructor
     // -----------------------------------------------------------------------
-    Win32TransService();
+    Win32TransService(MemoryManager* manager);
     virtual ~Win32TransService();
 
 
@@ -65,7 +65,7 @@
 
     virtual const XMLCh* getId() const;
 
-    virtual XMLLCPTranscoder* makeNewLCPTranscoder();
+    virtual XMLLCPTranscoder* makeNewLCPTranscoder(MemoryManager* manager);
 
     virtual bool supportsSrcOfs() const;
 
@@ -109,6 +109,7 @@
 
 
     RefHashTableOf<CPMapEntry>    *fCPMap;
+    MemoryManager*  fManager;
 };
 
 
@@ -246,6 +247,8 @@
     // -----------------------------------------------------------------------
     Win32LCPTranscoder(const Win32LCPTranscoder&);
     Win32LCPTranscoder& operator=(const Win32LCPTranscoder&);
+
+    MemoryManager*  fManager;
 };
 
 XERCES_CPP_NAMESPACE_END



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to