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/03 01:34:34 UTC

svn commit: r179673 - /xerces/c/branches/jberry/3.0-unstable/samples/src/DOMPrint /xerces/c/branches/jberry/3.0-unstable/src/xercesc/internal /xerces/c/branches/jberry/3.0-unstable/src/xercesc/util /xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Cygwin /xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/ICU /xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv /xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv390 /xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv400 /xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvFBSD /xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvGNU /xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/MacOSUnicodeConverter /xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Uniconv390 /xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Win32

Author: jberry
Date: Thu Jun  2 16:34:32 2005
New Revision: 179673

URL: http://svn.apache.org/viewcvs?rev=179673&view=rev
Log:
Apply third patch from bug http://issues.apache.org/jira/browse/XERCESC-1428, by Axel Weiss.

His notes on the patch:

This patch simplifies the LCP transcoder interface and subsequently all inheriting transcoders:
there is now only one transcode method for both directions, which saves a lot of redundand code: 

    virtual char* transcode(const XMLCh* const toTranscode, 
                            MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0; 

    virtual XMLCh* transcode(const char* const toTranscode, 
                             MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0; 

The transcode methods using an externally provided buffer are still present, but have been
declared deprecated. There were three occurences in the xerces sources, where these were
called: DOMPrint/DOMPrint.cpp, internal/XProtoType.cpp and util/XMLMsgLoader.cpp.
These have been changed so that they now use the simpler transcode methods. 

The unliked methods calcRequiredSize have been declared deprecated, too. ;) 




Modified:
    xerces/c/branches/jberry/3.0-unstable/samples/src/DOMPrint/DOMPrint.cpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/internal/XProtoType.cpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/TransService.hpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Cygwin/CygwinTransService.cpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Cygwin/CygwinTransService.hpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/ICU/ICUTransService.hpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.cpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.hpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.cpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.hpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.cpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.hpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.cpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.hpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Win32/Win32TransService.hpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLMsgLoader.cpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLString.cpp
    xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLString.hpp

Modified: xerces/c/branches/jberry/3.0-unstable/samples/src/DOMPrint/DOMPrint.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/samples/src/DOMPrint/DOMPrint.cpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/samples/src/DOMPrint/DOMPrint.cpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/samples/src/DOMPrint/DOMPrint.cpp Thu Jun  2 16:34:32 2005
@@ -431,8 +431,7 @@
         try
         {
             // get a serializer, an instance of DOMWriter
-            XMLCh tempStr[100];
-            XMLString::transcode("LS", tempStr, 99);
+            XMLCh tempStr[3] = {chLatin_L, chLatin_S, chNull};
             DOMImplementation *impl          = DOMImplementationRegistry::getDOMImplementation(tempStr);
             DOMWriter         *theSerializer = ((DOMImplementationLS*)impl)->createDOMWriter();
 

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/internal/XProtoType.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/internal/XProtoType.cpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/internal/XProtoType.cpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/internal/XProtoType.cpp Thu Jun  2 16:34:32 2005
@@ -102,14 +102,18 @@
         //we don't have class name exceed this length in xerces
         XMLCh name1[256];
         XMLCh name2[256];
-        XMLString::transcode((char*)inName,    name1, 255, manager);
-        XMLString::transcode((char*)className, name2, 255, manager);
+        XMLCh *tmp = XMLString::transcode((char*)inName, manager);
+        XMLString::copyNString(name1, tmp, 255);
+        manager->deallocate(tmp);
+        tmp = XMLString::transcode((char*)className, manager);
+        XMLString::copyNString(name2, tmp, 255);
+        manager->deallocate(tmp);
 
         ThrowXMLwithMemMgr2(XSerializationException
                 , XMLExcepts::XSer_ProtoType_Name_Dif
                 , name1
                 , name2
-                , manager);  
+                , manager);
     }
 
     return;

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/TransService.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/TransService.hpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/TransService.hpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/TransService.hpp Thu Jun  2 16:34:32 2005
@@ -511,19 +511,30 @@
     //          its assumed that the buffer is physically one char or byte
     //          larger.
     // -----------------------------------------------------------------------
+
+    // -----------------------------------------------------------------------
+    //  The 'normal' way to transcode a XMLCh-string from/to local string
+    //  representation
+    //
+    //  NOTE: Both methods return a string allocated via the MemoryManager.
+    //        It is the responsibility of the calling environment to
+    //        release this string after use.
+    // -----------------------------------------------------------------------
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
+
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
+
+
+    // -----------------------------------------------------------------------
+    //  DEPRECATED old transcode interface
+    // -----------------------------------------------------------------------
     virtual unsigned int calcRequiredSize(const char* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
 
     virtual unsigned int calcRequiredSize(const XMLCh* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
-
-    virtual char* transcode(const XMLCh* const toTranscode) = 0;
-    virtual char* transcode(const XMLCh* const toTranscode,
-                            MemoryManager* const manager) = 0;
-
-    virtual XMLCh* transcode(const char* const toTranscode) = 0;
-    virtual XMLCh* transcode(const char* const toTranscode,
-                             MemoryManager* const manager) = 0;
 
     virtual bool transcode
     (

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Cygwin/CygwinTransService.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Cygwin/CygwinTransService.cpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Cygwin/CygwinTransService.cpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Cygwin/CygwinTransService.cpp Thu Jun  2 16:34:32 2005
@@ -999,35 +999,6 @@
 }
 
 
-char* CygwinLCPTranscoder::transcode(const XMLCh* const toTranscode)
-{
-    if (!toTranscode)
-        return 0;
-
-    char* retVal = 0;
-    if (*toTranscode)
-    {
-        // Calc the needed size
-        const unsigned int neededLen = ::WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)toTranscode, -1, NULL, 0, NULL, NULL);
-        if (neededLen == 0)
-            return 0;
-
-        // Allocate a buffer of that size plus one for the null and transcode
-        // Returned length of WideCharToMultiByte includes terminating NUL.
-        retVal = new char[neededLen+1];
-        ::WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)toTranscode, -1, retVal, neededLen+1, NULL, NULL);
-
-        // And cap it off anyway just to make sure
-        retVal[neededLen] = 0;
-    }
-    else
-    {
-        retVal = new char[1];
-        retVal[0] = 0;
-    }
-    return retVal;
-}
-
 char* CygwinLCPTranscoder::transcode(const XMLCh* const toTranscode,
                                      MemoryManager* const manager)
 {
@@ -1058,34 +1029,6 @@
     return retVal;
 }
 
-
-XMLCh* CygwinLCPTranscoder::transcode(const char* const toTranscode)
-{
-    if (!toTranscode)
-        return 0;
-
-    XMLCh* retVal = 0;
-    if (*toTranscode)
-    {
-        // Calculate the buffer size required
-        const unsigned int neededLen = ::MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, toTranscode, -1, NULL, 0);
-        if (neededLen == 0)
-            return 0;
-
-        // Allocate a buffer of that size plus one for the null and transcode
-        retVal = new XMLCh[neededLen + 1];
-        ::MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, toTranscode, -1, (LPWSTR)retVal, neededLen + 1);
-
-        // Cap it off just to make sure. We are so paranoid!
-        retVal[neededLen] = 0;
-    }
-    else
-    {
-        retVal = new XMLCh[1];
-        retVal[0] = 0;
-    }
-    return retVal;
-}
 
 XMLCh* CygwinLCPTranscoder::transcode(const char* const toTranscode,
                                       MemoryManager* const manager)

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Cygwin/CygwinTransService.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Cygwin/CygwinTransService.hpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Cygwin/CygwinTransService.hpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Cygwin/CygwinTransService.hpp Thu Jun  2 16:34:32 2005
@@ -214,19 +214,21 @@
     // -----------------------------------------------------------------------
     //  Implementation of the virtual transcoder interface
     // -----------------------------------------------------------------------
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+
+    // -----------------------------------------------------------------------
+    //  DEPRECATED old transcode interface
+    // -----------------------------------------------------------------------
     virtual unsigned int calcRequiredSize(const char* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
     virtual unsigned int calcRequiredSize(const XMLCh* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
-
-    virtual char* transcode(const XMLCh* const toTranscode);
-    virtual char* transcode(const XMLCh* const toTranscode,
-                            MemoryManager* const manager);
-
-    virtual XMLCh* transcode(const char* const toTranscode);
-    virtual XMLCh* transcode(const char* const toTranscode,
-                             MemoryManager* const manager);
 
     virtual bool transcode
     (

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/ICU/ICUTransService.cpp Thu Jun  2 16:34:32 2005
@@ -842,106 +842,6 @@
 }
 
 
-char* ICULCPTranscoder::transcode(const XMLCh* const toTranscode)
-{
-    char* retBuf = 0;
-
-    // Check for a couple of special cases
-    if (!toTranscode)
-        return retBuf;
-
-    if (!*toTranscode)
-    {
-        retBuf = new char[1];
-        retBuf[0] = 0;
-        return retBuf;
-    }
-
-    //
-    //  Get the length of the source string since we'll have to use it in
-    //  a couple places below.
-    //
-    const unsigned int srcLen = XMLString::stringLen(toTranscode);
-
-    //
-    //  If XMLCh and UChar are not the same size, then we have to make a
-    //  temp copy of the text to pass to ICU.
-    //
-    const UChar* actualSrc;
-    UChar* ncActual = 0;
-    if (sizeof(XMLCh) == sizeof(UChar))
-    {
-        actualSrc = (const UChar*)toTranscode;
-    }
-     else
-    {
-        // Allocate a non-const temp buf, but store it also in the actual
-        ncActual = convertToUChar(toTranscode, 0, XMLPlatformUtils::fgMemoryManager);
-        actualSrc = ncActual;
-    }
-
-    // Insure that the temp buffer, if any, gets cleaned up via the nc pointer
-    ArrayJanitor<UChar> janTmp(ncActual, XMLPlatformUtils::fgMemoryManager);
-
-    // Caculate a return buffer size not too big, but less likely to overflow
-    int32_t targetLen = (int32_t)(srcLen * 1.25);
-
-    // Allocate the return buffer
-    retBuf = new char[targetLen + 1];
-
-    //
-    //  Lock now while we call the converter. Use a faux block to do the
-    //  lock so that it unlocks immediately afterwards.
-    //
-    UErrorCode err = U_ZERO_ERROR;
-    int32_t targetCap;
-    {
-        XMLMutexLock lockConverter(&fMutex);
-
-        targetCap = ucnv_fromUChars
-        (
-            fConverter
-            , retBuf
-            , targetLen + 1
-            , actualSrc
-            , -1
-            , &err
-        );
-    }
-
-    // If targetLen is not enough then buffer overflow might occur
-    if ((err == U_BUFFER_OVERFLOW_ERROR) || (err == U_STRING_NOT_TERMINATED_WARNING))
-    {
-        //
-        //  Reset the error, delete the old buffer, allocate a new one,
-        //  and try again.
-        //
-        err = U_ZERO_ERROR;
-        delete [] retBuf;
-        retBuf = new char[targetCap + 1];
-
-        // Lock again before we retry
-        XMLMutexLock lockConverter(&fMutex);
-        targetCap = ucnv_fromUChars
-        (
-            fConverter
-            , retBuf
-            , targetCap + 1
-            , actualSrc
-            , -1
-            , &err
-        );
-    }
-
-    if (U_FAILURE(err))
-    {
-        delete [] retBuf;
-        return 0;
-    }
-
-    return retBuf;
-}
-
 char* ICULCPTranscoder::transcode(const XMLCh* const toTranscode,
                                   MemoryManager* const manager)
 {
@@ -1041,94 +941,6 @@
     }
 
     return retBuf;
-}
-
-XMLCh* ICULCPTranscoder::transcode(const char* const toTranscode)
-{
-    // Watch for a few pyscho corner cases
-    if (!toTranscode)
-        return 0;
-
-    if (!*toTranscode)
-    {
-        XMLCh* retVal = new XMLCh[1];
-        retVal[0] = 0;
-        return retVal;
-    }
-
-    //
-    //  Get the length of the string to transcode. The Unicode string will
-    //  almost always be no more chars than were in the source, so this is
-    //  the best guess as to the storage needed.
-    //
-    const int32_t srcLen = (int32_t)strlen(toTranscode);
-
-    // We need a target buffer of UChars to fill in
-    UChar* targetBuf = 0;
-
-    // Now lock while we do these calculations
-    UErrorCode err = U_ZERO_ERROR;
-    int32_t targetCap;
-    {
-        XMLMutexLock lockConverter(&fMutex);
-
-        //
-        //  Here we don't know what the target length will be so use 0 and
-        //  expect an U_BUFFER_OVERFLOW_ERROR in which case it'd get resolved
-        //  by the correct capacity value.
-        //
-        targetCap = ucnv_toUChars
-        (
-            fConverter
-            , 0
-            , 0
-            , toTranscode
-            , srcLen
-            , &err
-        );
-
-        if (err != U_BUFFER_OVERFLOW_ERROR)
-            return 0;
-
-        err = U_ZERO_ERROR;
-        targetBuf = new UChar[targetCap + 1];
-        ucnv_toUChars
-        (
-            fConverter
-            , targetBuf
-            , targetCap + 1
-            , toTranscode
-            , srcLen
-            , &err
-        );
-    }
-
-    if (U_FAILURE(err))
-    {
-        // Clean up if we got anything allocated
-        delete [] targetBuf;
-        return 0;
-    }
-
-    // Cap it off to make sure
-    targetBuf[targetCap] = 0;
-
-    //
-    //  If XMLCh and UChar are the same size, then we can return retVal
-    //  as is. Else, we have to allocate another buffer and copy the data
-    //  over to it.
-    //
-    XMLCh* actualRet;
-    if (sizeof(XMLCh) == sizeof(UChar))
-    {
-        actualRet = (XMLCh*)targetBuf;
-    }
-     else
-    {
-        actualRet = convertToXMLCh(targetBuf);
-        delete [] targetBuf;
-    }
-    return actualRet;
 }
 
 XMLCh* ICULCPTranscoder::transcode(const char* const toTranscode,

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/ICU/ICUTransService.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/ICU/ICUTransService.hpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/ICU/ICUTransService.hpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/ICU/ICUTransService.hpp Thu Jun  2 16:34:32 2005
@@ -249,19 +249,21 @@
     // -----------------------------------------------------------------------
     //  Implementation of the virtual transcoder interface
     // -----------------------------------------------------------------------
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+
+    // -----------------------------------------------------------------------
+    //  DEPRECATED old transcode interface
+    // -----------------------------------------------------------------------
     virtual unsigned int calcRequiredSize(const char* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
     virtual unsigned int calcRequiredSize(const XMLCh* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
-
-    virtual char* transcode(const XMLCh* const toTranscode);
-    virtual char* transcode(const XMLCh* const toTranscode,
-                            MemoryManager* const manager);
-
-    virtual XMLCh* transcode(const char* const toTranscode);
-    virtual XMLCh* transcode(const char* const toTranscode,
-                             MemoryManager* const manager);
 
     virtual bool transcode
     (

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp Thu Jun  2 16:34:32 2005
@@ -278,23 +278,34 @@
     return retVal;
 }
 
+bool IconvLCPTranscoder::transcode( const   XMLCh* const    toTranscode
+                                    ,       char* const     toFill
+                                    , const unsigned int    maxBytes
+                                    , MemoryManager* const  manager)
+{
+	size_t bytesWritten, lettersConsumed;
+	return transcode(toTranscode, toFill, maxBytes, bytesWritten, lettersConsumed);
+}
 
-static void reallocString(char *&ref, size_t &size, MemoryManager* const manager, bool release_old)
+bool IconvLCPTranscoder::transcode( const   char* const     toTranscode
+                                    ,       XMLCh* const    toFill
+                                    , const unsigned int    maxChars
+                                    , MemoryManager* const  manager)
+{
+	size_t bytesWritten, lettersConsumed;
+	return transcode(toTranscode, toFill, maxBytes, bytesWritten, lettersConsumed);
+}
+
+static void reallocString(char *&ref, size_t &size, MemoryManager* const manager, bool releaseOld)
 {
 	char *tmp = (char*)manager->allocate(2 * size * sizeof(char));
 	memcpy(tmp, ref, size * sizeof(char));
-	if (release_old) manager->deallocate(ref);
+	if (releaseOld) manager->deallocate(ref);
 	ref = tmp;
 	size *= 2;
 }
 
 
-char* IconvLCPTranscoder::transcode(const XMLCh* const toTranscode)
-{
-	return transcode(toTranscode, XMLPlatformUtils::fgMemoryManager);
-}
-
-
 char* IconvLCPTranscoder::transcode(const XMLCh* const toTranscode,
                                     MemoryManager* const manager)
 {
@@ -332,75 +343,12 @@
 }
 
 
-bool IconvLCPTranscoder::transcode( const   XMLCh* const    toTranscode
-                                    ,       char* const     toFill
-                                    , const unsigned int    maxBytes
-                                    , MemoryManager* const  manager)
-{
-    // Watch for a couple of pyscho corner cases
-    if (!toTranscode || !maxBytes)
-    {
-        toFill[0] = 0;
-        return true;
-    }
-
-    if (!*toTranscode)
-    {
-        toFill[0] = 0;
-        return true;
-    }
-
-    unsigned int  wLent = getWideCharLength(toTranscode);
-    wchar_t       tmpWideCharArr[gTempBuffArraySize];
-    wchar_t*      allocatedArray = 0;
-    wchar_t*      wideCharBuf = 0;
-
-    if (wLent > maxBytes) {
-        wLent = maxBytes;
-    }
-
-    if (maxBytes >= gTempBuffArraySize) {
-        wideCharBuf = allocatedArray = (wchar_t*)
-            manager->allocate
-            (
-                (maxBytes + 1) * sizeof(wchar_t)
-            );//new wchar_t[maxBytes + 1];
-    }
-    else
-        wideCharBuf = tmpWideCharArr;
-
-    for (unsigned int i = 0; i < wLent; i++)
-    {
-        wideCharBuf[i] = toTranscode[i];
-    }
-    wideCharBuf[wLent] = 0x00;
-
-    // Ok, go ahead and try the transcoding. If it fails, then ...
-    size_t mblen = ::wcstombs(toFill, wideCharBuf, maxBytes);
-    if (mblen == -1)
-    {
-        manager->deallocate(allocatedArray);//delete [] allocatedArray;
-        return false;
-    }
-
-    // Cap it off just in case
-    toFill[mblen] = 0;
-    manager->deallocate(allocatedArray);//delete [] allocatedArray;
-    return true;
-}
-
-
-
-XMLCh* IconvLCPTranscoder::transcode(const char* const toTranscode)
-{
-	return transcode(toTranscode, XMLPlatformUtils::fgMemoryManager);
-}
 
-static void reallocXMLString(XMLCh *&ref, size_t &size, MemoryManager* const manager, bool release_old)
+static void reallocXMLString(XMLCh *&ref, size_t &size, MemoryManager* const manager, bool releaseOld)
 {
 	XMLCh *tmp = (XMLCh*)manager->allocate(2 * size * sizeof(XMLCh));
 	memcpy(tmp, ref, size * sizeof(XMLCh));
-	if (release_old) manager->deallocate(ref);
+	if (releaseOld) manager->deallocate(ref);
 	ref = tmp;
 	size *= 2;
 }
@@ -440,58 +388,6 @@
 	resultString[dstCursor] = L'\0';
 	return resultString;
 }
-
-
-bool IconvLCPTranscoder::transcode( const   char* const     toTranscode
-                                    ,       XMLCh* const    toFill
-                                    , const unsigned int    maxChars
-                                    , MemoryManager* const  manager)
-{
-    // Check for a couple of psycho corner cases
-    if (!toTranscode || !maxChars)
-    {
-        toFill[0] = 0;
-        return true;
-    }
-
-    if (!*toTranscode)
-    {
-        toFill[0] = 0;
-        return true;
-    }
-
-    unsigned int len = calcRequiredSize(toTranscode);
-    wchar_t       tmpWideCharArr[gTempBuffArraySize];
-    wchar_t*      allocatedArray = 0;
-    wchar_t*      wideCharBuf = 0;
-
-    if (len > maxChars) {
-        len = maxChars;
-    }
-
-    if (maxChars >= gTempBuffArraySize)
-        wideCharBuf = allocatedArray = (wchar_t*) manager->allocate
-        (
-            (maxChars + 1) * sizeof(wchar_t)
-        );//new wchar_t[maxChars + 1];
-    else
-        wideCharBuf = tmpWideCharArr;
-
-    if (::mbstowcs(wideCharBuf, toTranscode, maxChars) == -1)
-    {
-        manager->deallocate(allocatedArray);//delete [] allocatedArray;
-        return false;
-    }
-
-    for (unsigned int i = 0; i < len; i++)
-    {
-        toFill[i] = (XMLCh) wideCharBuf[i];
-    }
-    toFill[len] = 0x00;
-    manager->deallocate(allocatedArray);//delete [] allocatedArray;
-    return true;
-}
-
 
 
 // ---------------------------------------------------------------------------

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp Thu Jun  2 16:34:32 2005
@@ -152,32 +152,34 @@
     // -----------------------------------------------------------------------
     //  Implementation of the virtual transcoder interface
     // -----------------------------------------------------------------------
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+
+    // -----------------------------------------------------------------------
+    //  DEPRECATED old transcode interface
+    // -----------------------------------------------------------------------
     virtual unsigned int calcRequiredSize(const char* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
     virtual unsigned int calcRequiredSize(const XMLCh* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
-    virtual char* transcode(const XMLCh* const toTranscode);
-    virtual char* transcode(const XMLCh* const toTranscode,
-                            MemoryManager* const manager);
-
     virtual bool transcode
     (
-        const   XMLCh* const    toTranscode
-        ,       char* const     toFill
-        , const unsigned int    maxBytes
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
     );
 
-    virtual XMLCh* transcode(const char* const toTranscode);
-    virtual XMLCh* transcode(const char* const toTranscode,
-                             MemoryManager* const manager);
-
     virtual bool transcode
     (
-        const   char* const     toTranscode
-        ,       XMLCh* const    toFill
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
         , const unsigned int    maxChars
         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
     );

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.cpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.cpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.cpp Thu Jun  2 16:34:32 2005
@@ -363,35 +363,6 @@
 
 
 
-char* Iconv390LCPTranscoder::transcode(const XMLCh* const toTranscode)
-{
-    if (!toTranscode)
-        return 0;
-
-    char* retVal = 0;
-    if (*toTranscode)
-    {
-        unsigned int  wLent = getWideCharLength(toTranscode);
-	//
-	//  Translate the input from Unicode XMLCh format into
-	//  ibm-037 char format via the lookup table.
-	//
-        retVal = new char[wLent + 1];
-        const XMLCh *srcPtr = toTranscode;
-        char *outPtr = retVal;
-
-	while (*srcPtr != 0)
-	    *outPtr++ = gUnicodeToIBM037XlatTable[*srcPtr++];
-	*outPtr=0;
-    }
-    else
-    {
-        retVal = new char[1];
-        retVal[0] = 0;
-    }
-    return retVal;
-}
-
 char* Iconv390LCPTranscoder::transcode(const XMLCh* const toTranscode,
                                        MemoryManager* const manager)
 {
@@ -450,55 +421,6 @@
     *outPtr=0;
 
     return true;
-}
-
-
-
-XMLCh* Iconv390LCPTranscoder::transcode(const char* const toTranscode)
-{
-    if (!toTranscode)
-        return 0;
-
-    XMLCh* retVal = 0;
-    if (*toTranscode)
-    {
-        const unsigned int len = calcRequiredSize(toTranscode);
-        if (len == 0)
-        {
-            retVal = new XMLCh[1];
-            retVal[0] = 0;
-            return retVal;
-        }
-
-
-        wchar_t       tmpWideCharArr[gTempBuffArraySize];
-        wchar_t*      allocatedArray = 0;
-        wchar_t*      wideCharBuf = 0;
-
-        retVal = new XMLCh[len + 1];
-
-        size_t retCode;
-        char *tmpInPtr = (char*) toTranscode;
-        char *tmpOutPtr = (char*) retVal;
-        size_t inByteLeft = len;
-        size_t outByteLeft = len*2;
-        {
-         XMLMutexLock lockConverter(&converter->fMutex);
-         retCode = iconv(converter->fIconv390Descriptor, &tmpInPtr, &inByteLeft, &tmpOutPtr, &outByteLeft);
-        }
-        if (retCode == -1) {
-            delete [] retVal;
-            return 0;
-        }
-        retVal[len] = 0x00;
-        delete [] allocatedArray;
-    }
-    else
-    {
-        retVal = new XMLCh[1];
-        retVal[0] = 0;
-    }
-    return retVal;
 }
 
 XMLCh* Iconv390LCPTranscoder::transcode(const char* const toTranscode,

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.hpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.hpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv390/Iconv390TransService.hpp Thu Jun  2 16:34:32 2005
@@ -144,32 +144,34 @@
     // -----------------------------------------------------------------------
     //  Implementation of the virtual transcoder interface
     // -----------------------------------------------------------------------
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+
+    // -----------------------------------------------------------------------
+    //  DEPRECATED old transcode interface
+    // -----------------------------------------------------------------------
     virtual unsigned int calcRequiredSize(const char* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
     virtual unsigned int calcRequiredSize(const XMLCh* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
-    virtual char* transcode(const XMLCh* const toTranscode);
-    virtual char* transcode(const XMLCh* const toTranscode,
-                            MemoryManager* const manager);
-
     virtual bool transcode
     (
-        const   XMLCh* const    toTranscode
-        ,       char* const     toFill
-        , const unsigned int    maxBytes
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
     );
 
-    virtual XMLCh* transcode(const char* const toTranscode);
-    virtual XMLCh* transcode(const char* const toTranscode,
-                             MemoryManager* const manager);
-
     virtual bool transcode
     (
-        const   char* const     toTranscode
-        ,       XMLCh* const    toFill
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
         , const unsigned int    maxChars
         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
     );

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.cpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.cpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.cpp Thu Jun  2 16:34:32 2005
@@ -677,75 +677,6 @@
 }
 
 
-char* Iconv400LCPTranscoder::transcode(const XMLCh* const toTranscode)
-{
-    char* retBuf = 0;
-
-    // Check for a couple of special cases
-    if (!toTranscode)
-        return 0;
-
-    if (!*toTranscode)
-    {
-        retBuf = new char[1];
-        retBuf[0] = 0;
-        return retBuf;
-    }
-
-    // Caculate a return buffer size not too big, but less likely to overflow
-    int32_t targetLen = (int32_t)(u_strlen(toTranscode) * 1.25);
-
-    // Allocate the return buffer
-    retBuf = new char[targetLen + 1];
-
-    // Lock now while we call the converter.
-    UErrorCode err = U_ZERO_ERROR;
-    int32_t targetCap;
-    {
-        XMLMutexLock lockConverter(&fMutex);
-
-        //Convert the Unicode string to char*
-        targetCap = ucnv_fromUChars
-        (
-            fConverter
-            , retBuf
-            , targetLen + 1
-            , toTranscode
-            , &err
-        );
-    }
-
-    // If targetLen is not enough then buffer overflow might occur
-    if (err == U_BUFFER_OVERFLOW_ERROR)
-    {
-        // Reset the error, delete the old buffer, allocate a new one, and try again
-        err = U_ZERO_ERROR;
-        delete [] retBuf;
-        retBuf = new char[targetCap];
-
-        // Lock again before we retry
-        XMLMutexLock lockConverter(&fMutex);
-        targetCap = ucnv_fromUChars
-        (
-            fConverter
-            , retBuf
-            , targetCap
-            , toTranscode
-            , &err
-        );
-    }
-
-    if (U_FAILURE(err))
-    {
-        delete [] retBuf;
-        return 0;
-    }
-
-    // Cap it off and return
-    retBuf[targetCap] = 0;
-    return retBuf;
-}
-
 char* Iconv400LCPTranscoder::transcode(const XMLCh* const toTranscode,
                                        MemoryManager* const manager)
 {
@@ -814,78 +745,6 @@
     // Cap it off and return
     retBuf[targetCap] = 0;
     return retBuf;
-}
-
-XMLCh* Iconv400LCPTranscoder::transcode(const char* const toTranscode)
-{
-    // Watch for a few pyscho corner cases
-    if (!toTranscode)
-        return 0;
-
-    XMLCh* retVal = 0;
-    if (!*toTranscode)
-    {
-        retVal = new XMLCh[1];
-        retVal[0] = 0;
-        return retVal;
-    }
-
-    //
-    //  Get the length of the string to transcode. The Unicode string will
-    //  almost always be no more chars than were in the source, so this is
-    //  the best guess as to the storage needed.
-    //
-    const int32_t srcLen = (int32_t)strlen(toTranscode);
-    // Allocate unicode string of equivalent length in unicode bytes
-    retVal = new XMLCh[srcLen+1];
-
-    // Now lock while we do these calculations
-    UErrorCode err = U_ZERO_ERROR;
-    {
-        XMLMutexLock lockConverter(&fMutex);
-
-        //
-        //  Here we don't know what the target length will be so use 0 and
-        //  expect an U_BUFFER_OVERFLOW_ERROR in which case it'd get resolved
-        //  by the correct capacity value.
-        //
-        int32_t targetCap;
-        targetCap = ucnv_toUChars
-        (
-            fConverter
-            , retVal
-            , srcLen+1
-            , toTranscode
-            , srcLen
-            , &err
-        );
-
-        if (err == U_BUFFER_OVERFLOW_ERROR)  // @04c
-	{
-
-        err = U_ZERO_ERROR;
-	delete [] retVal;  // @04a
-        retVal = new XMLCh[targetCap];
-        ucnv_toUChars
-        (
-            fConverter
-            , retVal
-            , targetCap
-            , toTranscode
-            , srcLen
-            , &err
-           );
-	 }
-   }
-
-    if (U_FAILURE(err))
-    {
-        // Clean up if we got anything allocated
-        delete [] retVal;
-        return 0;
-    }
-
-    return retVal;
 }
 
 XMLCh* Iconv400LCPTranscoder::transcode(const char* const toTranscode,

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.hpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.hpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.hpp Thu Jun  2 16:34:32 2005
@@ -198,19 +198,21 @@
     // -----------------------------------------------------------------------
     //  Implementation of the virtual transcoder interface
     // -----------------------------------------------------------------------
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+
+    // -----------------------------------------------------------------------
+    //  DEPRECATED old transcode interface
+    // -----------------------------------------------------------------------
     virtual unsigned int calcRequiredSize(const char* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
     virtual unsigned int calcRequiredSize(const XMLCh* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
-
-    virtual char* transcode(const XMLCh* const toTranscode);
-    virtual char* transcode(const XMLCh* const toTranscode,
-                            MemoryManager* const manager);
-
-    virtual XMLCh* transcode(const char* const toTranscode);
-    virtual XMLCh* transcode(const char* const toTranscode,
-                             MemoryManager* const manager);
 
     virtual bool transcode
     (

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.cpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.cpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.cpp Thu Jun  2 16:34:32 2005
@@ -1032,97 +1032,6 @@
 }
 
 
-char* IconvFBSDLCPTranscoder::transcode(const XMLCh* const toTranscode)
-{
-    if (!toTranscode)
-        return 0;
-
-    char* retVal = 0;
-    if (*toTranscode) {
-        unsigned int  wLent = getWideCharLength(toTranscode);
-
-#ifndef XML_USE_LIBICONV
-
-        wchar_t       tmpWideCharArr[gTempBuffArraySize];
-        wchar_t*      allocatedArray = 0;
-        wchar_t*      wideCharBuf = 0;
-
-        if (wLent >= gTempBuffArraySize)
-            wideCharBuf = allocatedArray = new wchar_t[wLent + 1];
-        else
-            wideCharBuf = tmpWideCharArr;
-
-        for (unsigned int i = 0; i < wLent; i++)
-            wideCharBuf[i] = toTranscode[i];
-        wideCharBuf[wLent] = 0x00;
-
-        // Calc the needed size.
-        const size_t neededLen = fbsd_wcstombs(NULL, wideCharBuf, 0);
-        if (neededLen == -1) {
-            if (allocatedArray)
-                delete [] allocatedArray;
-            return 0;
-        }
-
-        retVal = new char[neededLen + 1];
-        fbsd_wcstombs(retVal, wideCharBuf, neededLen);
-        if (allocatedArray)
-            delete [] allocatedArray;
-        retVal[neededLen] = 0;
-
-#else /* XML_USE_LIBICONV */
-
-        // Calc needed size.
-        const size_t neededLen = calcRequiredSize (toTranscode);
-        if (neededLen == 0)
-            return 0;
-        // allocate output buffer
-        retVal = new char[neededLen + 1];
-        if (retVal == NULL)
-            return 0;
-        // prepare the original
-        char    tmpWBuff[gTempBuffArraySize];
-        char    *wideCharBuf = 0;
-        char    *wBufPtr = 0;
-        size_t  len = wLent * uChSize();
-
-        if (uChSize() != sizeof(XMLCh) || UBO() != BYTE_ORDER) {
-            if (len > gTempBuffArraySize) {
-            wBufPtr = new char[len];
-            if (wBufPtr == NULL)
-                return 0;
-            wideCharBuf = wBufPtr;
-            } else
-            wideCharBuf = tmpWBuff;
-            xmlToMbs (toTranscode, wLent, wideCharBuf, wLent);
-        } else
-            wideCharBuf = (char *) toTranscode;
-
-        // perform conversion
-        wLent *= uChSize();
-        char    *ptr = retVal;
-        size_t  tmpwLent = wLent;
-        size_t  rc = iconvTo(wideCharBuf, &tmpwLent, &ptr, neededLen);
-        if (rc == (size_t)-1) {
-            if (wBufPtr)
-            delete [] wBufPtr;
-            return 0;
-        }
-        if (wBufPtr)
-            delete [] wBufPtr;
-        retVal[neededLen] = 0;
-
-#endif /* !XML_USE_LIBICONV */
-
-    } else {
-        retVal = new char[1];
-        if (retVal == NULL)
-            return 0;
-        retVal[0] = 0;
-    }
-    return retVal;
-}
-
 char* IconvFBSDLCPTranscoder::transcode(const XMLCh* const toTranscode,
                                         MemoryManager* const manager)
 {
@@ -1312,92 +1221,6 @@
     return true;
 }
 
-
-
-XMLCh* IconvFBSDLCPTranscoder::transcode(const char* const toTranscode)
-{
-    if (!toTranscode)
-        return 0;
-
-    XMLCh* retVal = 0;
-    if (*toTranscode) {
-        const unsigned int wLent = calcRequiredSize(toTranscode);
-        if (wLent == 0) {
-            retVal = new XMLCh[1];
-            retVal[0] = 0;
-            return retVal;
-        }
-
-#ifndef XML_USE_LIBICONV
-
-        wchar_t       tmpWideCharArr[gTempBuffArraySize];
-        wchar_t*      allocatedArray = 0;
-        wchar_t*      wideCharBuf = 0;
-
-        if (wLent >= gTempBuffArraySize)
-            wideCharBuf = allocatedArray = new wchar_t[wLent + 1];
-        else
-            wideCharBuf = tmpWideCharArr;
-
-        fbsd_mbstowcs(wideCharBuf, toTranscode, wLent);
-        retVal = new XMLCh[wLent + 1];
-        if (retVal == NULL) {
-            if (allocatedArray)
-                delete [] allocatedArray;
-            return NULL;
-        }
-        for (unsigned int i = 0; i < wLent; i++)
-            retVal[i] = (XMLCh) wideCharBuf[i];
-        retVal[wLent] = 0x00;
-        if (allocatedArray)
-            delete [] allocatedArray;
-
-#else /* XML_USE_LIBICONV */
-
-        char    tmpWBuff[gTempBuffArraySize];
-        char    *wideCharBuf = 0;
-        char    *wBufPtr = 0;
-        size_t  len = wLent * uChSize();
-
-        retVal = new XMLCh[wLent + 1];
-        if (retVal == NULL)
-            return NULL;
-        if (uChSize() != sizeof(XMLCh) || UBO() != BYTE_ORDER) {
-            if (len > gTempBuffArraySize) {
-                wBufPtr = new char[len];
-                if (wBufPtr == NULL)
-                    return 0;
-                wideCharBuf = wBufPtr;
-            } else
-                wideCharBuf = tmpWBuff;
-        } else
-            wideCharBuf = (char *) retVal;
-
-        size_t    flen = strlen(toTranscode);
-        char    *ptr = wideCharBuf;
-        size_t    rc = iconvFrom(toTranscode, &flen, &ptr, len);
-        if (rc == (size_t) -1) {
-            if (wBufPtr)
-            delete [] wBufPtr;
-            return NULL;
-        }
-        if (uChSize() != sizeof(XMLCh) || UBO() != BYTE_ORDER)
-            mbsToXML (wideCharBuf, wLent, retVal, wLent);
-        if (wBufPtr)
-            delete [] wBufPtr;
-        retVal[wLent] = 0x00;
-
-#endif /* !XML_USE_LIBICONV */
-
-    }
-    else {
-        retVal = new XMLCh[1];
-        if (retVal == NULL )
-            return 0;
-        retVal[0] = 0;
-    }
-    return retVal;
-}
 
 XMLCh* IconvFBSDLCPTranscoder::transcode(const char* const toTranscode,
                                          MemoryManager* const manager)

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.hpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.hpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvFBSD/IconvFBSDTransService.hpp Thu Jun  2 16:34:32 2005
@@ -370,32 +370,34 @@
     // -----------------------------------------------------------------------
     //  Implementation of the virtual transcoder interface
     // -----------------------------------------------------------------------
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+
+    // -----------------------------------------------------------------------
+    //  DEPRECATED old transcode interface
+    // -----------------------------------------------------------------------
     virtual unsigned int calcRequiredSize(const char* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
     virtual unsigned int calcRequiredSize(const XMLCh* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
-    virtual char* transcode(const XMLCh* const toTranscode);
-    virtual char* transcode(const XMLCh* const toTranscode,
-                            MemoryManager* const manager);
-
     virtual bool transcode
     (
-        const   XMLCh* const    toTranscode
-        ,       char* const     toFill
-        , const unsigned int    maxBytes
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
     );
 
-    virtual XMLCh* transcode(const char* const toTranscode);
-    virtual XMLCh* transcode(const char* const toTranscode,
-                             MemoryManager* const manager);
-
     virtual bool transcode
     (
-        const   char* const     toTranscode
-        ,       XMLCh* const    toFill
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
         , const unsigned int    maxChars
         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
     );

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.cpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.cpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.cpp Thu Jun  2 16:34:32 2005
@@ -801,63 +801,6 @@
 }
 
 
-char* IconvGNULCPTranscoder::transcode(const XMLCh* const toTranscode)
-{
-    if (!toTranscode)
-        return 0;
-
-    char* retVal = 0;
-    if (*toTranscode) {
-        unsigned int  wLent = getWideCharLength(toTranscode);
-
-        // Calc needed size.
-        const size_t neededLen = calcRequiredSize (toTranscode);
-        if (neededLen == 0)
-            return 0;
-        // allocate output buffer
-        retVal = new char[neededLen + 1];
-        if (retVal == NULL)
-            return 0;
-        // prepare the original
-        char    tmpWBuff[gTempBuffArraySize];
-        char    *wideCharBuf = 0;
-        char    *wBufPtr = 0;
-        size_t  len = wLent * uChSize();
-
-        if (uChSize() != sizeof(XMLCh) || UBO() != BYTE_ORDER) {
-            if (len > gTempBuffArraySize) {
-                wBufPtr = new char[len];
-                if (wBufPtr == NULL)
-                    return 0;
-                wideCharBuf = wBufPtr;
-            } else
-                wideCharBuf = tmpWBuff;
-            xmlToMbs (toTranscode, wLent, wideCharBuf, wLent);
-        } else
-            wideCharBuf = (char *) toTranscode;
-
-        // perform conversion
-        wLent *= uChSize();
-        char    *ptr = retVal;
-        size_t    rc = iconvTo(wideCharBuf, (size_t *) &wLent, &ptr, neededLen);
-        if (rc == (size_t)-1) {
-            if (wBufPtr)
-            delete [] wBufPtr;
-            return 0;
-        }
-        if (wBufPtr)
-            delete [] wBufPtr;
-        retVal[neededLen] = 0;
-
-    } else {
-        retVal = new char[1];
-        if (retVal == NULL)
-            return 0;
-        retVal[0] = 0;
-    }
-    return retVal;
-}
-
 char* IconvGNULCPTranscoder::transcode(const XMLCh* const toTranscode,
                                        MemoryManager* const manager)
 {
@@ -973,63 +916,6 @@
     return true;
 }
 
-
-
-XMLCh* IconvGNULCPTranscoder::transcode(const char* const toTranscode)
-{
-    if (!toTranscode)
-        return 0;
-
-    XMLCh* retVal = 0;
-    if (*toTranscode) {
-        const unsigned int wLent = calcRequiredSize(toTranscode);
-        if (wLent == 0) {
-            retVal = new XMLCh[1];
-            retVal[0] = 0;
-            return retVal;
-        }
-
-        char    tmpWBuff[gTempBuffArraySize];
-        char    *wideCharBuf = 0;
-        char    *wBufPtr = 0;
-        size_t  len = wLent * uChSize();
-
-        retVal = new XMLCh[wLent + 1];
-        if (retVal == NULL)
-            return NULL;
-        if (uChSize() != sizeof(XMLCh) || UBO() != BYTE_ORDER) {
-            if (len > gTempBuffArraySize) {
-                wBufPtr = new char[len];
-                if (wBufPtr == NULL)
-                    return 0;
-                wideCharBuf = wBufPtr;
-            } else
-                wideCharBuf = tmpWBuff;
-        } else
-            wideCharBuf = (char *) retVal;
-
-        size_t    flen = strlen(toTranscode);
-        char    *ptr = wideCharBuf;
-        size_t    rc = iconvFrom(toTranscode, &flen, &ptr, len);
-        if (rc == (size_t) -1) {
-            if (wBufPtr)
-            delete [] wBufPtr;
-            return NULL;
-        }
-        if (uChSize() != sizeof(XMLCh) || UBO() != BYTE_ORDER)
-            mbsToXML (wideCharBuf, wLent, retVal, wLent);
-        if (wBufPtr)
-            delete [] wBufPtr;
-        retVal[wLent] = 0x00;
-    }
-    else {
-        retVal = new XMLCh[1];
-        if (retVal == NULL )
-            return 0;
-        retVal[0] = 0;
-    }
-    return retVal;
-}
 
 XMLCh* IconvGNULCPTranscoder::transcode(const char* const toTranscode,
                                         MemoryManager* const manager)

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/IconvGNU/IconvGNUTransService.hpp Thu Jun  2 16:34:32 2005
@@ -328,32 +328,34 @@
     // -----------------------------------------------------------------------
     //  Implementation of the virtual transcoder interface
     // -----------------------------------------------------------------------
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+
+    // -----------------------------------------------------------------------
+    //  DEPRECATED old transcode interface
+    // -----------------------------------------------------------------------
     virtual unsigned int calcRequiredSize(const char* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
     virtual unsigned int calcRequiredSize(const XMLCh* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
-    virtual char* transcode(const XMLCh* const toTranscode);
-    virtual char* transcode(const XMLCh* const toTranscode,
-                            MemoryManager* const manager);
-
     virtual bool transcode
     (
-        const   XMLCh* const    toTranscode
-        ,       char* const     toFill
-        , const unsigned int    maxBytes
+        const   char* const     toTranscode
+        ,       XMLCh* const    toFill
+        , const unsigned int    maxChars
         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
     );
 
-    virtual XMLCh* transcode(const char* const toTranscode);
-    virtual XMLCh* transcode(const char* const toTranscode,
-                             MemoryManager* const manager);
-
     virtual bool transcode
     (
-        const   char* const     toTranscode
-        ,       XMLCh* const    toFill
+        const   XMLCh* const    toTranscode
+        ,       char* const     toFill
         , const unsigned int    maxChars
         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
     );

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/MacOSUnicodeConverter/MacOSUnicodeConverter.hpp Thu Jun  2 16:34:32 2005
@@ -227,26 +227,19 @@
     //          its assumed that the buffer is physically one char or byte
     //          larger.
     // -----------------------------------------------------------------------
-    virtual unsigned int calcRequiredSize(const char* const srcText
-        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
-
-    virtual unsigned int calcRequiredSize(const XMLCh* const srcText
-        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
-
-    virtual char* transcode(const XMLCh* const toTranscode);
     virtual char* transcode(const XMLCh* const toTranscode,
-                            MemoryManager* const manager);
+                            MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
-    virtual XMLCh* transcode(const char* const toTranscode);
     virtual XMLCh* transcode(const char* const toTranscode,
-                            MemoryManager* const manager);
+                            MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
     virtual bool transcode
     (
         const   char* const     toTranscode
         ,       XMLCh* const    toFill
         , const unsigned int    maxChars
-        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+        , size_t               &lettersWritten
+        , size_t               &bytesConsumed
     );
 
     virtual bool transcode
@@ -254,8 +247,18 @@
         const   XMLCh* const    toTranscode
         ,       char* const     toFill
         , const unsigned int    maxChars
-        , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
+        , size_t               &bytesWritten
+        , size_t               &lettersConsumed
     );
+
+    // -----------------------------------------------------------------------
+    //  DEPRECATED old transcode interface
+    // -----------------------------------------------------------------------
+    virtual unsigned int calcRequiredSize(const char* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual unsigned int calcRequiredSize(const XMLCh* const srcText
+        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
 
 private :

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.hpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.hpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Uniconv390/Uniconv390TransService.hpp Thu Jun  2 16:34:32 2005
@@ -185,19 +185,21 @@
     // -----------------------------------------------------------------------
     //  Implementation of the virtual transcoder interface
     // -----------------------------------------------------------------------
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+
+    // -----------------------------------------------------------------------
+    //  DEPRECATED old transcode interface
+    // -----------------------------------------------------------------------
     virtual unsigned int calcRequiredSize(const char* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
     virtual unsigned int calcRequiredSize(const XMLCh* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
-
-    virtual char* transcode(const XMLCh* const toTranscode);
-    virtual char* transcode(const XMLCh* const toTranscode,
-                            MemoryManager* const manager);
-
-    virtual XMLCh* transcode(const char* const toTranscode);
-    virtual XMLCh* transcode(const char* const toTranscode,
-                             MemoryManager* const manager);
 
     virtual bool transcode
     (

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Win32/Win32TransService.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Win32/Win32TransService.hpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Win32/Win32TransService.hpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/Transcoders/Win32/Win32TransService.hpp Thu Jun  2 16:34:32 2005
@@ -278,19 +278,21 @@
     // -----------------------------------------------------------------------
     //  Implementation of the virtual transcoder interface
     // -----------------------------------------------------------------------
+    virtual char* transcode(const XMLCh* const toTranscode,
+                            MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+    virtual XMLCh* transcode(const char* const toTranscode,
+                             MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
+
+
+    // -----------------------------------------------------------------------
+    //  DEPRECATED old transcode interface
+    // -----------------------------------------------------------------------
     virtual unsigned int calcRequiredSize(const char* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
 
     virtual unsigned int calcRequiredSize(const XMLCh* const srcText
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
-
-    virtual char* transcode(const XMLCh* const toTranscode);
-    virtual char* transcode(const XMLCh* const toTranscode,
-                            MemoryManager* const manager);
-
-    virtual XMLCh* transcode(const char* const toTranscode);
-    virtual XMLCh* transcode(const char* const toTranscode,
-                             MemoryManager* const manager);
 
     virtual bool transcode
     (

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLMsgLoader.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLMsgLoader.cpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLMsgLoader.cpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLMsgLoader.cpp Thu Jun  2 16:34:32 2005
@@ -79,11 +79,25 @@
      *           refer to phttp://oss.software.ibm.com/icu/userguide/locale.html
      *           for details.
      */
-	if (localeToAdopt)
+	if (localeToAdopt && strlen(localeToAdopt) == 2)
 	{
-		fLocale   = XMLString::replicate(localeToAdopt, XMLPlatformUtils::fgMemoryManager);
-        XMLString::transcode(fLocale, fLanguage, 2, XMLPlatformUtils::fgMemoryManager);
-        fLanguage[2] = 0;
+/*
+		size_t lettersWritten, bytesConsumed;
+		XMLCh localBuffer[3];
+        if (XMLString::transcode(localeToAdopt, localBuffer, 2, lettersWritten, bytesConsumed)
+		    && lettersWritten == 2)
+		{
+			fLocale   = XMLString::replicate(localeToAdopt, XMLPlatformUtils::fgMemoryManager);
+			memcpy(fLanguage, localBuffer, 3 * sizeof(XMLCh));
+		}
+*/
+		XMLCh *transcoded = XMLString::transcode(localeToAdopt, XMLPlatformUtils::fgMemoryManager);
+		if (transcoded[0] && transcoded[1] && !transcoded[2])
+		{
+			fLocale   = XMLString::replicate(localeToAdopt, XMLPlatformUtils::fgMemoryManager);
+			memcpy(fLanguage, transcoded, 3 * sizeof(XMLCh));
+			XMLPlatformUtils::fgMemoryManager->deallocate(transcoded);
+		}
     }
 
 }

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLString.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLString.cpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLString.cpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLString.cpp Thu Jun  2 16:34:32 2005
@@ -546,30 +546,19 @@
 }
 
 
-char* XMLString::transcode(const XMLCh* const toTranscode)
-{
-    return gTranscoder->transcode(toTranscode);
-}
-
 char* XMLString::transcode(const XMLCh* const toTranscode,
                            MemoryManager* const manager)
 {
     return gTranscoder->transcode(toTranscode, manager);
 }
 
+
 bool XMLString::transcode(  const   XMLCh* const    toTranscode
                             ,       char* const     toFill
                             , const unsigned int    maxChars
                             , MemoryManager* const  manager)
 {
-    if (!gTranscoder->transcode(toTranscode, toFill, maxChars, manager))
-        return false;
-    return true;
-}
-
-XMLCh* XMLString::transcode(const char* const toTranscode)
-{
-    return gTranscoder->transcode(toTranscode);
+    return gTranscoder->transcode(toTranscode, toFill, maxChars, manager);
 }
 
 XMLCh* XMLString::transcode(const char* const toTranscode,
@@ -583,9 +572,7 @@
                             , const unsigned int    maxChars
                             , MemoryManager* const  manager)
 {
-    if (!gTranscoder->transcode(toTranscode, toFill, maxChars, manager))
-        return false;
-    return true;
+    return gTranscoder->transcode(toTranscode, toFill, maxChars, manager);
 }
 
 

Modified: xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLString.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLString.hpp?rev=179673&r1=179672&r2=179673&view=diff
==============================================================================
--- xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLString.hpp (original)
+++ xerces/c/branches/jberry/3.0-unstable/src/xercesc/util/XMLString.hpp Thu Jun  2 16:34:32 2005
@@ -1372,15 +1372,11 @@
       */
     static char* transcode
     (
-        const   XMLCh* const    toTranscode
-    );
-    static char* transcode
-    (
         const   XMLCh* const         toTranscode
-        ,       MemoryManager* const manager
+        ,       MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
     );
 
-    /** Transcodes a string to native code-page
+    /** Transcodes a string to native code-page (DEPRECATED)
       *
       * Be aware that when transcoding to an external encoding, that each
       * Unicode char can create multiple output bytes. So you cannot assume
@@ -1415,15 +1411,11 @@
       */
     static XMLCh* transcode
     (
-        const   char* const     toTranscode
-    );
-    static XMLCh* transcode
-    (
         const   char* const          toTranscode
-        ,       MemoryManager* const manager
+        ,       MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
     );
 
-    /** Transcodes a string to native code-page
+    /** Transcodes a string to native code-page (DEPRECATED)
       * @param toTranscode The string tobe transcoded
       * @param toFill The buffer that is filled with the transcoded value.
       *        The size of this buffer should atleast be 'maxChars + 1'.



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