diff --git a/src/xercesc/util/Platforms/AIX/AIXPlatformUtils.cpp b/src/xercesc/util/Platforms/AIX/AIXPlatformUtils.cpp index e81604baa700004e6dab38dc30704bf61a177a80..9ba83d259838b35489612f34d55346ac8489dc4c 100644 --- a/src/xercesc/util/Platforms/AIX/AIXPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/AIX/AIXPlatformUtils.cpp @@ -220,8 +220,8 @@ unsigned int XMLPlatformUtils::fileSize(FileHandle theFile) FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fMemoryManager); FileHandle retVal = (FILE*)fopen( tmpFileName , "rb" ); if (retVal == NULL) @@ -240,8 +240,8 @@ FileHandle XMLPlatformUtils::openFile(const char* const fileName) FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return fopen( tmpFileName , "wb" ); } @@ -310,7 +310,8 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // --------------------------------------------------------------------------- // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // @@ -318,8 +319,8 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) // so we know that its not some pathological freaky path. It comes in // in native format, and goes out as Unicode always // - char* newSrc = XMLString::transcode(srcPath); - ArrayJanitor<char> janText(newSrc); + char* newSrc = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janText(newSrc, fgMemoryManager); // Use a local buffer that is big enough for the largest legal path char absPath[PATH_MAX + 1]; @@ -331,7 +332,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(absPath); + return XMLString::transcode(absPath, manager); } bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) @@ -352,7 +353,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return true; } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { char dirBuf[PATH_MAX + 1]; char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); @@ -363,7 +364,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(curDir); + return XMLString::transcode(curDir, manager); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/BeOS/BeOSPlatformUtils.cpp b/src/xercesc/util/Platforms/BeOS/BeOSPlatformUtils.cpp index bd56f6d6ef9f9f606862f9d35b160a18a746a2a8..28c9d9d0f6f538149f710484e86ec2117ef98f88 100644 --- a/src/xercesc/util/Platforms/BeOS/BeOSPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/BeOS/BeOSPlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.7 2003/05/15 18:37:47 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.6 2003/04/25 17:18:53 peiyongz * throw exception if getcwd() fails * @@ -271,8 +274,8 @@ unsigned int XMLPlatformUtils::fileSize(FileHandle theFile) FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); FileHandle retVal = (FILE*)fopen( tmpFileName , "rb" ); if (retVal == NULL) @@ -291,8 +294,8 @@ FileHandle XMLPlatformUtils::openFile(const char* const fileName) FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return fopen( tmpFileName , "wb" ); } @@ -369,7 +372,8 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // --------------------------------------------------------------------------- // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // @@ -377,8 +381,8 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) // so we know that its not some pathological freaky path. It comes in // in native format, and goes out as Unicode always // - char* newSrc = XMLString::transcode(srcPath); - ArrayJanitor<char> janText(newSrc); + char* newSrc = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janText(newSrc, fgMemoryManager); // Use a local buffer that is big enough for the largest legal path char absPath[PATH_MAX + 1]; @@ -389,7 +393,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) { ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(absPath); + return XMLString::transcode(absPath, manager); } bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) @@ -410,7 +414,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return true; } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { char dirBuf[PATH_MAX + 1]; char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); @@ -421,7 +425,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(curDir); + return XMLString::transcode(curDir, manager); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/FreeBSD/FreeBSDPlatformUtils.cpp b/src/xercesc/util/Platforms/FreeBSD/FreeBSDPlatformUtils.cpp index d4a454a867c20650eb7f73227c6351f3e60994c4..b52130329186696b8cb6996660cb519ab6228a1a 100644 --- a/src/xercesc/util/Platforms/FreeBSD/FreeBSDPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/FreeBSD/FreeBSDPlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.13 2003/05/15 18:37:47 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.12 2003/04/25 17:19:10 peiyongz * throw exception if getcwd() fails * @@ -293,8 +296,8 @@ FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) if (fileName == NULL) ThrowXML(XMLPlatformUtilsException, XMLExcepts::CPtr_PointerIsZero); - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); FileHandle retVal = (FileHandle)fopen( tmpFileName , "r+" ); return retVal; } @@ -313,8 +316,8 @@ FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) if (fileName == NULL) ThrowXML(XMLPlatformUtilsException, XMLExcepts::CPtr_PointerIsZero); - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return fopen( tmpFileName , "w" ); } @@ -405,7 +408,8 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // --------------------------------------------------------------------------- // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // @@ -413,8 +417,8 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) // so we know that its not some pathological freaky path. It comes in // in native format, and goes out as Unicode always // - char* newSrc = XMLString::transcode(srcPath); - ArrayJanitor<char> janText(newSrc); + char* newSrc = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janText(newSrc, fgMemoryManager); // Use a local buffer that is big enough for the largest legal path char absPath[PATH_MAX + 1]; @@ -425,7 +429,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) { ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(absPath); + return XMLString::transcode(absPath, manager); } bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) @@ -446,7 +450,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return true; } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { char dirBuf[PATH_MAX + 1]; char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); @@ -457,7 +461,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(curDir); + return XMLString::transcode(curDir, manager); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/HPUX/HPPlatformUtils.cpp b/src/xercesc/util/Platforms/HPUX/HPPlatformUtils.cpp index 7e5b703b78075c3251797dec9f892a5fee3164ef..b194234de9d40369ac0a8750468221ee3126ac66 100644 --- a/src/xercesc/util/Platforms/HPUX/HPPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/HPUX/HPPlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.13 2003/05/15 18:37:48 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.12 2003/04/25 17:19:26 peiyongz * throw exception if getcwd() fails * @@ -362,16 +365,16 @@ FileHandle XMLPlatformUtils::openFile(const char* const fileName) FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) { - char* tmpFileName = XMLString::transcode(fileName); + char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); FileHandle retVal = (FILE*) fopen(tmpFileName , "rb"); - delete [] tmpFileName; + fgMemoryManager->deallocate(tmpFileName);//delete [] tmpFileName; return retVal; } FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return fopen( tmpFileName , "wb" ); } @@ -449,7 +452,8 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // --------------------------------------------------------------------------- // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { @@ -458,8 +462,8 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) // so we know that its not some pathological freaky path. It comes in // in native format, and goes out as Unicode always // - char* newSrc = XMLString::transcode(srcPath); - ArrayJanitor<char> janText(newSrc); + char* newSrc = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janText(newSrc, fgMemoryManager); // Use a local buffer that is big enough for the largest legal path char absPath[PATH_MAX + 1]; @@ -470,7 +474,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) { ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(absPath); + return XMLString::transcode(absPath, manager); } @@ -492,7 +496,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return true; } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { char dirBuf[PATH_MAX + 1]; char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); @@ -503,7 +507,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(curDir); + return XMLString::transcode(curDir, manager); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/IRIX/IRIXPlatformUtils.cpp b/src/xercesc/util/Platforms/IRIX/IRIXPlatformUtils.cpp index 24b92aebd991f90774f8d0fdb251c7c2890b66c7..a505b73c021e01766664837f471337e5e54ff70d 100644 --- a/src/xercesc/util/Platforms/IRIX/IRIXPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/IRIX/IRIXPlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.12 2003/05/15 18:37:48 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.11 2003/04/25 17:19:40 peiyongz * throw exception if getcwd() fails * @@ -316,8 +319,8 @@ unsigned int XMLPlatformUtils::fileSize(FileHandle theFile) FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); FileHandle retVal = (FILE*)fopen( tmpFileName , "rb" ); if (retVal == NULL) @@ -338,8 +341,8 @@ FileHandle XMLPlatformUtils::openFile(const char* const fileName) FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return fopen( tmpFileName , "wb" ); } @@ -422,7 +425,8 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // --------------------------------------------------------------------------- // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // @@ -430,8 +434,8 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) // so we know that its not some pathological freaky path. It comes in // in native format, and goes out as Unicode always // - char* newSrc = XMLString::transcode(srcPath); - ArrayJanitor<char> janText(newSrc); + char* newSrc = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janText(newSrc, fgMemoryManager); // Use a local buffer that is big enough for the largest legal path char absPath[PATH_MAX + 1]; @@ -442,7 +446,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) { ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(absPath); + return XMLString::transcode(absPath, manager); } bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) @@ -463,7 +467,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return true; } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { char dirBuf[PATH_MAX + 1]; char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); @@ -474,7 +478,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(curDir); + return XMLString::transcode(curDir, manager); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/Linux/LinuxPlatformUtils.cpp b/src/xercesc/util/Platforms/Linux/LinuxPlatformUtils.cpp index 119c12c6c683e8d309577da50dffeb89225b31c2..1c35de2d659f491c6753da40a270c6c6e1e0b2f4 100644 --- a/src/xercesc/util/Platforms/Linux/LinuxPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/Linux/LinuxPlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.16 2003/05/15 18:37:48 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.15 2003/04/25 17:19:53 peiyongz * throw exception if getcwd() fails * @@ -367,8 +370,8 @@ unsigned int XMLPlatformUtils::fileSize(FileHandle theFile) FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); FileHandle retVal = (FILE*)fopen( tmpFileName , "rb" ); if (retVal == NULL) @@ -387,8 +390,8 @@ FileHandle XMLPlatformUtils::openFile(const char* const fileName) FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return fopen( tmpFileName , "wb" ); } @@ -465,7 +468,8 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // --------------------------------------------------------------------------- // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // @@ -473,8 +477,8 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) // so we know that its not some pathological freaky path. It comes in // in native format, and goes out as Unicode always // - char* newSrc = XMLString::transcode(srcPath); - ArrayJanitor<char> janText(newSrc); + char* newSrc = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janText(newSrc, fgMemoryManager); // Use a local buffer that is big enough for the largest legal path char absPath[PATH_MAX + 1]; @@ -485,7 +489,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) { ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(absPath); + return XMLString::transcode(absPath, manager); } bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) @@ -506,7 +510,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return true; } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { char dirBuf[PATH_MAX + 1]; char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); @@ -517,7 +521,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(curDir); + return XMLString::transcode(curDir, manager); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/MacOS/MacAbstractFile.hpp b/src/xercesc/util/Platforms/MacOS/MacAbstractFile.hpp index 4b257e24762b79164b4a85a019e6131dfa675750..8c356e2a9273ddd168d6d512787526267f91d382 100644 --- a/src/xercesc/util/Platforms/MacOS/MacAbstractFile.hpp +++ b/src/xercesc/util/Platforms/MacOS/MacAbstractFile.hpp @@ -60,12 +60,12 @@ #pragma once -#include <xercesc/util/XercesDefs.hpp> +#include <xercesc/util/XMemory.hpp> XERCES_CPP_NAMESPACE_BEGIN // Abstract class for files. This could be used to allow multiple file paradigms. -class XMLMacAbstractFile +class XMLMacAbstractFile : public XMemory { public: XMLMacAbstractFile() {} diff --git a/src/xercesc/util/Platforms/MacOS/MacOSPlatformUtils.cpp b/src/xercesc/util/Platforms/MacOS/MacOSPlatformUtils.cpp index f6420e3947205ff0a91ad9826f25e9432692078c..220decc71e4bc5ef4e4a5fe77a4b49081d84cad3 100644 --- a/src/xercesc/util/Platforms/MacOS/MacOSPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/MacOS/MacOSPlatformUtils.cpp @@ -128,7 +128,8 @@ char* ConvertSlashToColon(char* p, std::size_t charCount); XMLCh* XMLCreateFullPathFromFSRef_X(const FSRef& startingRef); XMLCh* XMLCreateFullPathFromFSRef_Classic(const FSRef& startingRef); -XMLCh* XMLCreateFullPathFromFSSpec_Classic(const FSSpec& startingSpec); +XMLCh* XMLCreateFullPathFromFSSpec_Classic(const FSSpec& startingSpec, + MemoryManager* const manager); bool XMLParsePathToFSRef_X(const XMLCh* const pathName, FSRef& ref); bool XMLParsePathToFSRef_Classic(const XMLCh* const pathName, FSRef& ref); bool XMLParsePathToFSSpec_Classic(const XMLCh* const pathName, FSSpec& spec); @@ -304,7 +305,8 @@ XMLPlatformUtils::resetFile(FileHandle theFile) // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- XMLCh* -XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { XMLCh* path = NULL; @@ -312,13 +314,13 @@ XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) { FSRef ref; if (!XMLParsePathToFSRef(srcPath, ref) || (path = XMLCreateFullPathFromFSRef(ref)) == NULL) - path = XMLString::replicate(srcPath); + path = XMLString::replicate(srcPath, manager); } else { FSSpec spec; - if (!XMLParsePathToFSSpec(srcPath, spec) || (path = XMLCreateFullPathFromFSSpec(spec)) == NULL) - path = XMLString::replicate(srcPath); + if (!XMLParsePathToFSSpec(srcPath, spec) || (path = XMLCreateFullPathFromFSSpec(spec, manager)) == NULL) + path = XMLString::replicate(srcPath, manager); } return path; @@ -332,13 +334,13 @@ XMLPlatformUtils::isRelative(const XMLCh* const toCheck) } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { // Get a newly allocated path to the current directory FSSpec spec; XMLCh* path = (noErr == FSMakeFSSpec(0, 0, NULL, &spec)) - ? XMLCreateFullPathFromFSSpec(spec) + ? XMLCreateFullPathFromFSSpec(spec, manager) : NULL; if (!path) @@ -998,8 +1000,8 @@ XMLParsePathToFSSpec_Classic(const XMLCh* const pathName, FSSpec& spec) // Manually parse the path using FSSpec APIs. // Transcode the path into ascii - const char* p = XMLString::transcode(pathName); - ArrayJanitor<const char> janPath(p); + const char* p = XMLString::transcode(pathName, fgMemoryManager); + ArrayJanitor<const char> janPath(p, fgMemoryManager); const char* pEnd; std::size_t segLen; @@ -1201,7 +1203,7 @@ XMLCreateFullPathFromFSRef_X(const FSRef& startingRef) uniBuf[pathLen++] = 0; // Transcode into a dynamically allocated buffer of XMLChs - ArrayJanitor<XMLCh> result(new XMLCh[pathLen]); + ArrayJanitor<XMLCh> result((XMLCh*) fgMemoryManager->allocate(pathLen * sizeof(XMLCh))/*new XMLCh[pathLen]*/, fgMemoryManager); if (result.get() != NULL) CopyUniCharsToXMLChs(uniBuf, result.get(), pathLen, pathLen); @@ -1245,7 +1247,11 @@ XMLCreateFullPathFromFSRef_Classic(const FSRef& startingRef) // name plus separator, dump it to the dynamic result buffer. if (bufPos < (std::size_t)name.length + 1) { - ArrayJanitor<XMLCh> temp(new XMLCh[bufCnt + resultLen]); + ArrayJanitor<XMLCh> temp + ( + (XMLCh*) fgMemoryManager->allocate((bufCnt + resultLen) * sizeof(XMLCh));//new XMLCh[bufCnt + resultLen] + , fgMemoryManager + ); // Copy in the static buffer std::memcpy(temp.get(), &buf[bufPos], bufCnt * sizeof(XMLCh)); @@ -1273,7 +1279,11 @@ XMLCreateFullPathFromFSRef_Classic(const FSRef& startingRef) while (err == noErr && catalogInfo.parentDirID != fsRtParID); // Composite existing buffer + any previous result buffer - ArrayJanitor<XMLCh> final(new XMLCh[bufCnt + resultLen]); + ArrayJanitor<XMLCh> final + ( + (XMLCh*) fgMemoryManager->allocate((bufCnt + resultLen) * sizeof(XMLCh))//new XMLCh[bufCnt + resultLen] + , fgMemoryManager + ); // Copy in the static buffer std::memcpy(final.get(), &buf[bufPos], bufCnt * sizeof(XMLCh)); @@ -1287,7 +1297,8 @@ XMLCreateFullPathFromFSRef_Classic(const FSRef& startingRef) XMLCh* -XMLCreateFullPathFromFSSpec(const FSSpec& startingSpec) +XMLCreateFullPathFromFSSpec(const FSSpec& startingSpec, + MemoryManager* const manager) { XMLCh* result = NULL; @@ -1310,7 +1321,7 @@ XMLCreateFullPathFromFSSpec(const FSSpec& startingSpec) else { // Create using FSSpecs only - result = XMLCreateFullPathFromFSSpec_Classic(startingSpec); + result = XMLCreateFullPathFromFSSpec_Classic(startingSpec, manager); } return result; @@ -1318,7 +1329,8 @@ XMLCreateFullPathFromFSSpec(const FSSpec& startingSpec) XMLCh* -XMLCreateFullPathFromFSSpec_Classic(const FSSpec& startingSpec) +XMLCreateFullPathFromFSSpec_Classic(const FSSpec& startingSpec, + MemoryManager* const manager) { // Manually create the path using FSSpec APIs. OSStatus err = noErr; @@ -1352,7 +1364,11 @@ XMLCreateFullPathFromFSSpec_Classic(const FSSpec& startingSpec) // name plus separator, dump it to the dynamic result buffer. if (bufPos < nameLen + 1) { - ArrayJanitor<char> temp(new char[bufCnt + resultLen]); + ArrayJanitor<char> temp + ( + (char*) fgMemoryManager->allocate((bufCnt + resultLen) * sizeof(char))//new char[bufCnt + resultLen] + , fgMemoryManager + ); // Copy in the static buffer std::memcpy(temp.get(), &buf[bufPos], bufCnt); @@ -1384,7 +1400,11 @@ XMLCreateFullPathFromFSSpec_Classic(const FSSpec& startingSpec) while (err == noErr && spec.parID != fsRtParID); // Composite existing buffer with any previous result buffer - ArrayJanitor<char> final(new char[bufCnt + resultLen]); + ArrayJanitor<char> final + ( + (char*) fgMemoryManager->allocate((bufCnt + resultLen) * sizeof(char))//new char[bufCnt + resultLen] + , fgMemoryManager + ); // Copy in the static buffer std::memcpy(final.get(), &buf[bufPos], bufCnt); @@ -1394,7 +1414,7 @@ XMLCreateFullPathFromFSSpec_Classic(const FSSpec& startingSpec) std::memcpy(final.get() + bufCnt, result.get(), resultLen); // Cleanup and transcode to unicode - return XMLString::transcode(final.get()); + return XMLString::transcode(final.get(), manager); } diff --git a/src/xercesc/util/Platforms/OS2/OS2PlatformUtils.cpp b/src/xercesc/util/Platforms/OS2/OS2PlatformUtils.cpp index 03113f62a129145ca605fb517e6ae9b3389607e5..0476ca61cbe023682004a01aed50845a9ac03a28 100644 --- a/src/xercesc/util/Platforms/OS2/OS2PlatformUtils.cpp +++ b/src/xercesc/util/Platforms/OS2/OS2PlatformUtils.cpp @@ -148,8 +148,8 @@ FileHandle XMLPlatformUtils::openFile(const char* const fileName) FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); FileHandle retVal = (FILE*)fopen( tmpFileName , "rb" ); if (retVal == NULL) @@ -188,16 +188,17 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // ----------------------------------------------------------------------- // File system methods // ----------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // Transcode the incoming string - char* tmpSrcPath = XMLString::transcode(srcPath); - ArrayJanitor<char> janSrcPath(tmpSrcPath); + char* tmpSrcPath = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janSrcPath(tmpSrcPath, fgMemoryManager); char tmpPath[CCHMAXPATH]; _fullpath(tmpPath, tmpSrcPath, CCHMAXPATH); - return XMLString::transcode(tmpPath); + return XMLString::transcode(tmpPath, manager); } bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) @@ -232,7 +233,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return true; } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { /*** @@ -242,7 +243,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() ***/ XMLCh curDir[]={ chPeriod, chForwardSlash, chNull}; - return getFullPath(curDir); + return getFullPath(curDir, manager); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/OS390/FileHandleImpl.hpp b/src/xercesc/util/Platforms/OS390/FileHandleImpl.hpp index 9fbd3f32c69ba2c4dacd05167312da2c0d8f5111..e89cff30f6f954f3328d1a1a59caab78abdaee27 100644 --- a/src/xercesc/util/Platforms/OS390/FileHandleImpl.hpp +++ b/src/xercesc/util/Platforms/OS390/FileHandleImpl.hpp @@ -61,11 +61,11 @@ #ifndef FILEHANDLEIMPL_HPP #define FILEHANDLEIMPL_HPP -#include <xercesc/util/XercesDefs.hpp> +#include <xercesc/util/XMemory.hpp> XERCES_CPP_NAMESPACE_BEGIN -class FileHandleImpl +class FileHandleImpl : public XMemory { private: FILE* Handle; // handle from fopen diff --git a/src/xercesc/util/Platforms/OS390/OS390PlatformUtils.cpp b/src/xercesc/util/Platforms/OS390/OS390PlatformUtils.cpp index b7f794d41fe79ede7698533e51af3e54161dd8d8..731d308c9e5dcefbf59be3c4c032d2f9ffb9d8c0 100644 --- a/src/xercesc/util/Platforms/OS390/OS390PlatformUtils.cpp +++ b/src/xercesc/util/Platforms/OS390/OS390PlatformUtils.cpp @@ -301,8 +301,8 @@ static FileHandleImpl* openRead(char* tmpFileName) optionBufferSize += (strlen(pathobj.getfopenParms()) + 1); } - char* optionBuffer = new char[optionBufferSize]; - ArrayJanitor<char> janText((char*)optionBuffer); + char* optionBuffer = (char*) fgMemoryManager->allocate(optionBufferSize * sizeof(char));//new char[optionBufferSize]; + ArrayJanitor<char> janText((char*)optionBuffer, fgMemoryManager); strcpy(optionBuffer,"rb"); // Build the options buffer @@ -360,8 +360,11 @@ static FileHandleImpl* openRead(char* tmpFileName) // path/path2/filename.ext => //path.path2.ext(filename) // path/path2/filename => //path.path2.filename - char* datasetName = new char[ strlen(tmpFileName) + 5 ]; - ArrayJanitor<char> janText1((char*)datasetName); + char* datasetName = (char*) fgMemoryManager->allocate + ( + (strlen(tmpFileName) + 5) * sizeof(char) + );//new char[ strlen(tmpFileName) + 5 ]; + ArrayJanitor<char> janText1((char*)datasetName, fgMemoryManager); char *datasetPos = datasetName, *tmpPos = tmpFileName; // We are in EBCDIC mode here @@ -499,8 +502,8 @@ static FileHandleImpl* openWrite(char* tmpFileName) if (pathobj.getfopenParms()) optionBufferSize += (strlen(pathobj.getfopenParms()) + 1); - char* optionBuffer = new char[optionBufferSize]; - ArrayJanitor<char> janText((char*)optionBuffer); + char* optionBuffer = (char*) fgMemoryManager->allocate((optionBufferSize) * sizeof(char));//new char[optionBufferSize]; + ArrayJanitor<char> janText((char*)optionBuffer, fgMemoryManager); strcpy(optionBuffer,"wb"); // Build the options buffer @@ -638,8 +641,8 @@ unsigned int XMLPlatformUtils::fileSize(FileHandle theFile) FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) { - char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return openRead(tmpFileName); } @@ -647,8 +650,11 @@ FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) FileHandle XMLPlatformUtils::openFile(const char* const fileName) { - char* tmpFileName = new char[strlen(fileName) + 1]; - ArrayJanitor<char> janText((char*)tmpFileName); + char* tmpFileName = (char*) fgMemoryManager->allocate + ( + (strlen(fileName) + 1) * sizeof(char) + );//new char[strlen(fileName) + 1]; + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); strcpy(tmpFileName,fileName); return openRead(tmpFileName); @@ -657,8 +663,8 @@ FileHandle XMLPlatformUtils::openFile(const char* const fileName) FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) { - char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return openWrite(tmpFileName); } @@ -666,8 +672,11 @@ FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) FileHandle XMLPlatformUtils::openFileToWrite(const char* const fileName) { - char* tmpFileName = new char[strlen(fileName) + 1]; - ArrayJanitor<char> janText((char*)tmpFileName); + char* tmpFileName = (char*) fgMemoryManager->allocate + ( + (strlen(fileName) + 1) * sizeof(char) + );//new char[strlen(fileName) + 1]; + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); strcpy(tmpFileName,fileName); return openWrite(tmpFileName); @@ -833,7 +842,8 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // --------------------------------------------------------------------------- // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // @@ -841,16 +851,16 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) // so we know that its not some pathological freaky path. It comes in // in native format, and goes out as Unicode always // - char* newSrc = XMLString::transcode(srcPath); - ArrayJanitor<char> janText(newSrc); + char* newSrc = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janText(newSrc, fgMemoryManager); Path390 pathobj; pathobj.setPath(newSrc); char* retPath = 0; // Use a local buffer that is big enough for the largest legal path - char *absPath = new char[_POSIX_PATH_MAX]; - ArrayJanitor<char> janText2(absPath); + char *absPath = (char*) fgMemoryManager->allocate((_POSIX_PATH_MAX) * sizeof(char));//new char[_POSIX_PATH_MAX]; + ArrayJanitor<char> janText2(absPath, fgMemoryManager); if ( (pathobj.getPathType() == PATH390_HFS) || (pathobj.getPathType() == PATH390_OTHER) ) { //get the absolute path @@ -858,9 +868,9 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) if (!retPath) { ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(absPath); + return XMLString::transcode(absPath, manager); } - return XMLString::transcode(newSrc); + return XMLString::transcode(newSrc, manager); } bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) @@ -893,8 +903,8 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return false; } - char* tmpFileName = XMLString::transcode(toCheck); - ArrayJanitor<char> janText((char*)tmpFileName); + char* tmpFileName = XMLString::transcode(toCheck, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); Path390 pathobj; pathobj.setPath(tmpFileName); @@ -903,7 +913,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { /*** @@ -913,7 +923,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() ***/ XMLCh curDir[]={ chPeriod, chForwardSlash, chNull}; - return getFullPath(curDir); + return getFullPath(curDir, manager); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/OS400/OS400PlatformUtils.cpp b/src/xercesc/util/Platforms/OS400/OS400PlatformUtils.cpp index d1b728233f3cba81f7201b58c0d02d8aa86bfa10..7d140a435f9ac5232a47d8e69ccd788e1e8af1d5 100644 --- a/src/xercesc/util/Platforms/OS400/OS400PlatformUtils.cpp +++ b/src/xercesc/util/Platforms/OS400/OS400PlatformUtils.cpp @@ -249,8 +249,8 @@ unsigned int XMLPlatformUtils::fileSize(FileHandle theFile) #include <qusec.h> FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) { char errno_id[7]; - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); errno = 0; FileHandle retVal = (FILE*)fopen( tmpFileName , "rb" ); @@ -281,8 +281,8 @@ FileHandle XMLPlatformUtils::openFile(const char* const fileName) FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return openFileToWrite(tmpFileName); } @@ -393,7 +393,8 @@ char *realpath(const char *file_name, char *resolved_name) -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // @@ -401,8 +402,8 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) // so we know that its not some pathological freaky path. It comes in // in native format, and goes out as Unicode always // - char* newSrc = XMLString::transcode(srcPath); - ArrayJanitor<char> janText(newSrc); + char* newSrc = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janText(newSrc, fgMemoryManager); // Use a local buffer that is big enough for the largest legal path char absPath[PATH_MAX + 1]; //get the absolute path @@ -412,7 +413,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) { ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(absPath); + return XMLString::transcode(absPath, manager); } @@ -434,7 +435,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return true; } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { char dirBuf[PATH_MAX + 1]; char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); @@ -445,7 +446,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(curDir); + return XMLString::transcode(curDir, manager); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) @@ -577,7 +578,7 @@ void XMLPlatformUtils::platformInit() } } -class RecursiveMutex +class RecursiveMutex : public XMemory { public: pthread_mutex_t mutex; diff --git a/src/xercesc/util/Platforms/OpenServer/OpenServerPlatformUtils.cpp b/src/xercesc/util/Platforms/OpenServer/OpenServerPlatformUtils.cpp index db6a21482acc6fe10fec03cbe1f18187ea9efea8..2b9fd57474ef25ad7986a1fe407edf045a046194 100644 --- a/src/xercesc/util/Platforms/OpenServer/OpenServerPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/OpenServer/OpenServerPlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.8 2003/05/15 18:37:49 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.7 2003/04/25 17:20:11 peiyongz * throw exception if getcwd() fails * @@ -246,8 +249,8 @@ unsigned int XMLPlatformUtils::fileSize(FileHandle theFile) FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); FileHandle retVal = (FILE*)fopen(tmpFileName , "rb"); if (retVal == NULL) @@ -268,8 +271,8 @@ FileHandle XMLPlatformUtils::openFile(const char* const fileName) FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return fopen( tmpFileName , "wb" ); } @@ -343,21 +346,25 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // --------------------------------------------------------------------------- // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // // NOTE: The path provided has always already been opened successfully, // so we know that its not some pathological freaky path. It comes in // in native format, and goes out as Unicode always // - char* newSrc = XMLString::transcode(srcPath); - ArrayJanitor<char> janText(newSrc); + char* newSrc = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janText(newSrc, fgMemoryManager); // Use a local buffer that is big enough for the largest legal path // Without the *3 we get exceptions with gcc on OpenServer 5.0.5/6 when // relative paths are passed in - char *absPath = new char[pathconf(newSrc, _PC_PATH_MAX)*3]; - ArrayJanitor<char> janText2(absPath); + char *absPath = (char*) fgMemoryManager->allocate + ( + (pathconf(newSrc, _PC_PATH_MAX)*3) * sizeof(char) + );//new char[pathconf(newSrc, _PC_PATH_MAX)*3]; + ArrayJanitor<char> janText2(absPath, fgMemoryManager); // Get the absolute path char* retPath = realpath(newSrc, absPath); @@ -366,7 +373,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(absPath); + return XMLString::transcode(absPath, manager); } bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) @@ -387,7 +394,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return true; } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { char dirBuf[PATH_MAX + 1]; char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); @@ -398,7 +405,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(curDir); + return XMLString::transcode(curDir, manager); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) @@ -448,7 +455,7 @@ void XMLPlatformUtils::platformInit() // ----------------------------------------------------------------------- // Mutex- and atomic operation methods // ----------------------------------------------------------------------- -class RecursiveMutex +class RecursiveMutex : public XMemory { public: pthread_mutex_t mutex; diff --git a/src/xercesc/util/Platforms/QNX/QNXPlatformUtils.cpp b/src/xercesc/util/Platforms/QNX/QNXPlatformUtils.cpp index 583307f2dd17975c40ffaf84b242bc06153bd19f..cf46bafb1054d4b6ed3d20a8de8c0139859ea4fb 100644 --- a/src/xercesc/util/Platforms/QNX/QNXPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/QNX/QNXPlatformUtils.cpp @@ -157,8 +157,8 @@ FileHandle XMLPlatformUtils::openFile(const char* const fileName) FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return openFile( tmpFileName ); } @@ -169,8 +169,8 @@ FileHandle XMLPlatformUtils::openFileToWrite(const char* const fileName) FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return openFileToWrite(tmpFileName); } @@ -218,15 +218,16 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // --------------------------------------------------------------------------- // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // // NOTE: THe path provided has always already been opened successfully, // so we know that its not some pathological freaky path. It comes in // in native format, and goes out as Unicode always // - char* newSrc = XMLString::transcode(srcPath); - ArrayJanitor<char> janText(newSrc); + char* newSrc = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janText(newSrc, fgMemoryManager); char absPath[PATH_MAX + 1]; char* retPath = realpath(newSrc, &absPath[0]); @@ -235,7 +236,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(absPath); + return XMLString::transcode(absPath, manager); } @@ -246,7 +247,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return true; } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { char dirBuf[PATH_MAX + 1]; char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); @@ -257,7 +258,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(curDir); + return XMLString::transcode(curDir, manager); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp b/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp index a56cb3a4af467b9bebc12172f79bc26277feb34c..a952ac75c799c7ed5fb0401dd8acfbea6870e3fd 100644 --- a/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp @@ -248,8 +248,8 @@ FileHandle XMLPlatformUtils::openFile(const char* const fileName) FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); FileHandle retVal = (FILE*)fopen( tmpFileName , "rb" ); if (retVal == NULL) @@ -259,8 +259,8 @@ FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return fopen( tmpFileName , "wb" ); } @@ -333,15 +333,16 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // --------------------------------------------------------------------------- // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // // NOTE: THe path provided has always already been opened successfully, // so we know that its not some pathological freaky path. It comes in // in native format, and goes out as Unicode always // - char* newSrc = XMLString::transcode(srcPath); - ArrayJanitor<char> janText(newSrc); + char* newSrc = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janText(newSrc, fgMemoryManager); // Use a local buffer that is big enough for the largest legal path char absPath[PATH_MAX + 1]; @@ -352,7 +353,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) { ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(absPath); + return XMLString::transcode(absPath, manager); } bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) @@ -373,7 +374,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return true; } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { char dirBuf[PATH_MAX + 1]; char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); @@ -384,7 +385,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(curDir); + return XMLString::transcode(curDir, manager); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/Tandem/TandemPlatformUtils.cpp b/src/xercesc/util/Platforms/Tandem/TandemPlatformUtils.cpp index ddbc0192421fc52ab20aabbd232e2784bddae0e0..5a84182e5caa1b8e324e2a8240f4895919e678c3 100644 --- a/src/xercesc/util/Platforms/Tandem/TandemPlatformUtils.cpp +++ b/src/xercesc/util/Platforms/Tandem/TandemPlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.9 2003/05/15 18:37:49 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.8 2003/04/24 02:58:31 peiyongz * Logical Path Resolution * @@ -207,7 +210,8 @@ unsigned int XMLPlatformUtils::fileSize(FileHandle theFile) FileHandle XMLPlatformUtils::openFile(const unsigned short* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> tmpFileNameJan((char*)tmpFileName , fgMemoryManager); FileHandle retVal = (FILE*)fopen( tmpFileName , "rb" ); if (retVal == NULL) @@ -242,7 +246,8 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // --------------------------------------------------------------------------- // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // @@ -250,7 +255,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) // so we know that its not some pathological freaky path. It comes in // in native format, and goes out as Unicode always // - char* newSrc = XMLString::transcode(srcPath); + char* newSrc = XMLString::transcode(srcPath, fgMemoryManager); // Use a local buffer that is big enough for the largest legal path char* tmpPath = dirname((char*)newSrc); @@ -259,12 +264,15 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) throw XMLPlatformUtilsException("XMLPlatformUtils::resetFile - Could not get the base path name"); } - char* newXMLString = new char [strlen(tmpPath) +1]; - ArrayJanitor<char> newJanitor(newXMLString); + char* newXMLString = (char*) fgMemoryManager->allocate + ( + (strlen(tmpPath) +1) * sizeof(char) + );//new char [strlen(tmpPath) +1]; + ArrayJanitor<char> newJanitor(newXMLString, fgMemoryManager); strcpy(newXMLString, tmpPath); strcat(newXMLString , "/"); // Return a copy of the path, in Unicode format - return XMLString::transcode(newXMLString); + return XMLString::transcode(newXMLString, manager); } bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) diff --git a/src/xercesc/util/Platforms/Tru64/Tru64PlatformUtils.cpp b/src/xercesc/util/Platforms/Tru64/Tru64PlatformUtils.cpp index 065ce4719bb731df042ebe181129fd52b616cce7..6ba7c8f34b0a9307c0fffa96793266e5fd62780f 100644 --- a/src/xercesc/util/Platforms/Tru64/Tru64PlatformUtils.cpp +++ b/src/xercesc/util/Platforms/Tru64/Tru64PlatformUtils.cpp @@ -248,8 +248,8 @@ FileHandle XMLPlatformUtils::openFile(const char* const fileName) FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); FileHandle retVal = (FILE*)fopen( tmpFileName , "rb" ); if (retVal == NULL) @@ -259,8 +259,8 @@ FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return fopen( tmpFileName , "wb" ); } @@ -332,15 +332,16 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // --------------------------------------------------------------------------- // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // // NOTE: THe path provided has always already been opened successfully, // so we know that its not some pathological freaky path. It comes in // in native format, and goes out as Unicode always // - char* newSrc = XMLString::transcode(srcPath); - ArrayJanitor<char> janText(newSrc); + char* newSrc = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janText(newSrc, fgMemoryManager); // Use a local buffer that is big enough for the largest legal path char absPath[PATH_MAX + 1]; @@ -352,7 +353,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(absPath); + return XMLString::transcode(absPath, manager); } bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) @@ -373,7 +374,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return true; } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { char dirBuf[PATH_MAX + 1]; char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); @@ -384,7 +385,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(curDir); + return XMLString::transcode(curDir, manager); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) diff --git a/src/xercesc/util/Platforms/UnixWare/UnixWarePlatformUtils.cpp b/src/xercesc/util/Platforms/UnixWare/UnixWarePlatformUtils.cpp index 92c3fd453d794ab9cb3b742368dc474eaec0dbd4..5f2dc925e400afa3fd9bab764dd697ddb4e341c5 100644 --- a/src/xercesc/util/Platforms/UnixWare/UnixWarePlatformUtils.cpp +++ b/src/xercesc/util/Platforms/UnixWare/UnixWarePlatformUtils.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.10 2003/05/15 18:37:49 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.9 2003/04/25 17:21:31 peiyongz * throw exception if getcwd() fails * @@ -299,8 +302,8 @@ unsigned int XMLPlatformUtils::fileSize(FileHandle theFile) FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); FileHandle retVal = (FILE*)fopen( tmpFileName , "rb" ); if (retVal == NULL) @@ -319,8 +322,8 @@ FileHandle XMLPlatformUtils::openFile(const char* const fileName) FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) { - const char* tmpFileName = XMLString::transcode(fileName); - ArrayJanitor<char> janText((char*)tmpFileName); + const char* tmpFileName = XMLString::transcode(fileName, fgMemoryManager); + ArrayJanitor<char> janText((char*)tmpFileName, fgMemoryManager); return fopen( tmpFileName , "wb" ); } @@ -397,15 +400,16 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // --------------------------------------------------------------------------- // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // // NOTE: The path provided has always already been opened successfully, // so we know that its not some pathological freaky path. It comes in // in native format, and goes out as Unicode always // - char* newSrc = XMLString::transcode(srcPath); - ArrayJanitor<char> janText(newSrc); + char* newSrc = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janText(newSrc, fgMemoryManager); // Use a local buffer that is big enough for the largest legal path char absPath[PATH_MAX + 1]; @@ -417,7 +421,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(absPath); + return XMLString::transcode(absPath, manager); } bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) @@ -438,7 +442,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return true; } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { char dirBuf[PATH_MAX + 1]; char *curDir = getcwd(&dirBuf[0], PATH_MAX + 1); @@ -449,7 +453,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() XMLExcepts::File_CouldNotGetBasePathName); } - return XMLString::transcode(curDir); + return XMLString::transcode(curDir, manager); } inline bool XMLPlatformUtils::isAnySlash(XMLCh c) @@ -496,7 +500,7 @@ void XMLPlatformUtils::platformInit() panic( PanicHandler::Panic_SystemInit ); } -class RecursiveMutex +class RecursiveMutex : public XMemory { public: pthread_mutex_t mutex; diff --git a/src/xercesc/util/Platforms/Win32/Win32PlatformUtils.cpp b/src/xercesc/util/Platforms/Win32/Win32PlatformUtils.cpp index faa9a2eef140f8dca2cf4b7025ade0d262b37398..f4453bf12618df5b55e463a0ce56e953c5cb353c 100644 --- a/src/xercesc/util/Platforms/Win32/Win32PlatformUtils.cpp +++ b/src/xercesc/util/Platforms/Win32/Win32PlatformUtils.cpp @@ -292,7 +292,7 @@ FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) // if (*srcPtr) { - tmpUName = XMLString::replicate(nameToOpen); + tmpUName = XMLString::replicate(nameToOpen, fgMemoryManager); XMLCh* tmpPtr = tmpUName; while (*tmpPtr) @@ -324,7 +324,7 @@ FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) // We are Win 95 / 98. Take the Unicode file name back to (char *) // so that we can open it. // - char* tmpName = XMLString::transcode(nameToOpen); + char* tmpName = XMLString::transcode(nameToOpen, fgMemoryManager); retVal = ::CreateFileA ( tmpName @@ -335,11 +335,11 @@ FileHandle XMLPlatformUtils::openFile(const XMLCh* const fileName) , FILE_FLAG_SEQUENTIAL_SCAN , 0 ); - delete [] tmpName; + fgMemoryManager->deallocate(tmpName);//delete [] tmpName; } if (tmpUName) - delete [] tmpUName; + fgMemoryManager->deallocate(tmpUName);//delete [] tmpUName; if (retVal == INVALID_HANDLE_VALUE) return 0; @@ -408,7 +408,7 @@ FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) // if (*srcPtr) { - tmpUName = XMLString::replicate(fileName); + tmpUName = XMLString::replicate(fileName, fgMemoryManager); XMLCh* tmpPtr = tmpUName; while (*tmpPtr) @@ -440,7 +440,7 @@ FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) // We are Win 95 / 98. Take the Unicode file name back to (char *) // so that we can open it. // - char* tmpName = XMLString::transcode(nameToOpen); + char* tmpName = XMLString::transcode(nameToOpen, fgMemoryManager); retVal = ::CreateFileA ( tmpName @@ -451,11 +451,11 @@ FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName) , FILE_ATTRIBUTE_NORMAL , 0 ); - delete [] tmpName; + fgMemoryManager->deallocate(tmpName);//delete [] tmpName; } if (tmpUName) - delete [] tmpUName; + fgMemoryManager->deallocate(tmpUName);//delete [] tmpUName; if (retVal == INVALID_HANDLE_VALUE) return 0; @@ -554,7 +554,8 @@ void XMLPlatformUtils::resetFile(FileHandle theFile) // --------------------------------------------------------------------------- // XMLPlatformUtils: File system methods // --------------------------------------------------------------------------- -XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) +XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath, + MemoryManager* const manager) { // // If we are on NT, then use wide character APIs, else use ASCII APIs. @@ -572,13 +573,13 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) return 0; // Return a copy of the path - return XMLString::replicate(tmpPath); + return XMLString::replicate(tmpPath, manager); } else { // Transcode the incoming string - char* tmpSrcPath = XMLString::transcode(srcPath); - ArrayJanitor<char> janSrcPath(tmpSrcPath); + char* tmpSrcPath = XMLString::transcode(srcPath, fgMemoryManager); + ArrayJanitor<char> janSrcPath(tmpSrcPath, fgMemoryManager); // Use a local buffer that is big enough for the largest legal path const unsigned int bufSize = 511; @@ -589,7 +590,7 @@ XMLCh* XMLPlatformUtils::getFullPath(const XMLCh* const srcPath) return 0; // Return a transcoded copy of the path - return XMLString::transcode(tmpPath); + return XMLString::transcode(tmpPath, manager); } } @@ -625,7 +626,7 @@ bool XMLPlatformUtils::isRelative(const XMLCh* const toCheck) return true; } -XMLCh* XMLPlatformUtils::getCurrentDirectory() +XMLCh* XMLPlatformUtils::getCurrentDirectory(MemoryManager* const manager) { // // If we are on NT, then use wide character APIs, else use ASCII APIs. @@ -642,7 +643,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() return 0; // Return a copy of the path - return XMLString::replicate(tmpPath); + return XMLString::replicate(tmpPath, manager); } else { @@ -655,7 +656,7 @@ XMLCh* XMLPlatformUtils::getCurrentDirectory() return 0; // Return a transcoded copy of the path - return XMLString::transcode(tmpPath); + return XMLString::transcode(tmpPath, manager); } }