diff --git a/src/xercesc/util/NetAccessors/MacOSURLAccess/MacOSURLAccess.cpp b/src/xercesc/util/NetAccessors/MacOSURLAccess/MacOSURLAccess.cpp index 428ede31e3e95012bbaf85267154e3aa7778f619..e6cf844a5b5e1cd5820e541b95815a77d766ff54 100644 --- a/src/xercesc/util/NetAccessors/MacOSURLAccess/MacOSURLAccess.cpp +++ b/src/xercesc/util/NetAccessors/MacOSURLAccess/MacOSURLAccess.cpp @@ -101,7 +101,7 @@ MacOSURLAccess::makeNew(const XMLURL& urlSource) // from this source. That's the correct place to verify // whether or not we can really handle this URL type... // if it throws, well, it throws ;) - BinInputStream* result = new URLAccessBinInputStream(urlSource); + BinInputStream* result = new (urlSource.getMemoryManager()) URLAccessBinInputStream(urlSource); return result; } diff --git a/src/xercesc/util/NetAccessors/MacOSURLAccess/URLAccessBinInputStream.cpp b/src/xercesc/util/NetAccessors/MacOSURLAccess/URLAccessBinInputStream.cpp index 3c267e0041a14ec51a67b921185c51cb2559a32d..8e61ae4d5b4c9cfc89d291422fa09a56beca4a47 100644 --- a/src/xercesc/util/NetAccessors/MacOSURLAccess/URLAccessBinInputStream.cpp +++ b/src/xercesc/util/NetAccessors/MacOSURLAccess/URLAccessBinInputStream.cpp @@ -83,8 +83,8 @@ URLAccessBinInputStream::URLAccessBinInputStream(const XMLURL& urlSource) OSStatus status = noErr; // Get the full URL from the source - char* url = XMLString::transcode(urlSource.getURLText()); - ArrayJanitor<char> janBuf(url); + char* url = XMLString::transcode(urlSource.getURLText(), urlSource.getMemoryManager()); + ArrayJanitor<char> janBuf(url, urlSource.getMemoryManager()); // Create a URL reference from the URL status = URLNewReference(url, &mURLReference); diff --git a/src/xercesc/util/NetAccessors/MacOSURLAccessCF/MacOSURLAccessCF.cpp b/src/xercesc/util/NetAccessors/MacOSURLAccessCF/MacOSURLAccessCF.cpp index fbbfa750f3f99fe6df69c24b2303f384448f0b70..3aa8ec5e815e8b83083d766f11d9b6c53de33ca2 100644 --- a/src/xercesc/util/NetAccessors/MacOSURLAccessCF/MacOSURLAccessCF.cpp +++ b/src/xercesc/util/NetAccessors/MacOSURLAccessCF/MacOSURLAccessCF.cpp @@ -94,7 +94,7 @@ MacOSURLAccessCF::~MacOSURLAccessCF() BinInputStream* MacOSURLAccessCF::makeNew(const XMLURL& urlSource) { - BinInputStream* result = new URLAccessCFBinInputStream(urlSource); + BinInputStream* result = new (urlSource.getMemoryManager()) URLAccessCFBinInputStream(urlSource); return result; } diff --git a/src/xercesc/util/NetAccessors/Socket/SocketNetAccessor.cpp b/src/xercesc/util/NetAccessors/Socket/SocketNetAccessor.cpp index 845eebec6224cefdf339454070f91ee8ce12d3bd..e9b487020f1e54e04c4b85a4b7ce8b7d9c13b085 100644 --- a/src/xercesc/util/NetAccessors/Socket/SocketNetAccessor.cpp +++ b/src/xercesc/util/NetAccessors/Socket/SocketNetAccessor.cpp @@ -96,7 +96,7 @@ BinInputStream* SocketNetAccessor::makeNew(const XMLURL& urlSource) case XMLURL::HTTP: { UnixHTTPURLInputStream* retStrm = - new UnixHTTPURLInputStream(urlSource); + new (urlSource.getMemoryManager()) UnixHTTPURLInputStream(urlSource); return retStrm; break; } diff --git a/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp b/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp index a2a2019d72602e59fc87af0defc2a75ed7ade4fa..ae0768e8c72ef746f7890654cd7017f91f539f64 100644 --- a/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp +++ b/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.12 2003/05/17 05:54:18 knoaman + * Update NetAccessors to use the memory manager. + * * Revision 1.11 2003/05/16 14:03:28 knoaman * Pass memory manager to makeNewTranscoder. * @@ -214,14 +217,15 @@ UnixHTTPURLInputStream::UnixHTTPURLInputStream(const XMLURL& urlSource) const XMLCh* path = urlSource.getPath(); const XMLCh* fragment = urlSource.getFragment(); const XMLCh* query = urlSource.getQuery(); + MemoryManager* manager = urlSource.getMemoryManager(); // // Convert the hostName to the platform's code page for gethostbyname and // inet_addr functions. // - char* hostNameAsCharStar = XMLString::transcode(hostName); - ArrayJanitor<char> janBuf1(hostNameAsCharStar); + char* hostNameAsCharStar = XMLString::transcode(hostName, manager); + ArrayJanitor<char> janBuf1(hostNameAsCharStar, manager); // // Convert all the parts of the urlSource object to ASCII so they can be @@ -229,32 +233,44 @@ UnixHTTPURLInputStream::UnixHTTPURLInputStream(const XMLURL& urlSource) // transSize = XMLString::stringLen(hostName)+1; - char* hostNameAsASCII = new char[transSize+1]; - ArrayJanitor<char> janBuf2(hostNameAsASCII); + char* hostNameAsASCII = (char*) manager->allocate + ( + (transSize+1) * sizeof(char) + );//new char[transSize+1]; + ArrayJanitor<char> janBuf2(hostNameAsASCII, manager); - XMLTranscoder* trans = XMLPlatformUtils::fgTransService->makeNewTranscoderFor("ISO8859-1", failReason, blockSize, urlSource.getMemoryManager()); + XMLTranscoder* trans = XMLPlatformUtils::fgTransService->makeNewTranscoderFor("ISO8859-1", failReason, blockSize, manager); trans->transcodeTo(hostName, transSize, (unsigned char *) hostNameAsASCII, transSize, charsEaten, XMLTranscoder::UnRep_Throw); transSize = XMLString::stringLen(path)+1; - char* pathAsASCII = new char[transSize+1]; - ArrayJanitor<char> janBuf3(pathAsASCII); + char* pathAsASCII = (char*) manager->allocate + ( + (transSize+1) * sizeof(char) + );//new char[transSize+1]; + ArrayJanitor<char> janBuf3(pathAsASCII, manager); trans->transcodeTo(path, transSize, (unsigned char *) pathAsASCII, transSize, charsEaten, XMLTranscoder::UnRep_Throw); char* fragmentAsASCII = 0; if (fragment) { transSize = XMLString::stringLen(fragment)+1; - fragmentAsASCII = new char[transSize+1]; - ArrayJanitor<char> janBuf4(fragmentAsASCII); + fragmentAsASCII = (char*) manager->allocate + ( + (transSize+1) * sizeof(char) + );//new char[transSize+1]; + ArrayJanitor<char> janBuf4(fragmentAsASCII, manager); trans->transcodeTo(fragment, transSize, (unsigned char *) fragmentAsASCII, transSize, charsEaten, XMLTranscoder::UnRep_Throw); } char* queryAsASCII = 0; - ArrayJanitor<char> janBuf5(queryAsASCII); + ArrayJanitor<char> janBuf5(queryAsASCII, manager); if (query) { transSize = XMLString::stringLen(query)+1; - queryAsASCII = new char[transSize+1]; + queryAsASCII = (char*) manager->allocate + ( + (transSize+1) * sizeof(char) + );//new char[transSize+1]; trans->transcodeTo(query, transSize, (unsigned char *) queryAsASCII, transSize, charsEaten, XMLTranscoder::UnRep_Throw); } @@ -266,7 +282,10 @@ UnixHTTPURLInputStream::UnixHTTPURLInputStream(const XMLURL& urlSource) XMLString::binToText((unsigned int) portNumber, portBuffer, bufSize, 10); transSize = XMLString::stringLen(portBuffer)+1; - char* portAsASCII = new char[transSize+1]; + char* portAsASCII = (char*) manager->allocate + ( + (transSize+1) * sizeof(char) + );//new char[transSize+1]; trans->transcodeTo(portBuffer, transSize, (unsigned char *) portAsASCII, transSize, charsEaten, XMLTranscoder::UnRep_Throw); delete trans; diff --git a/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp b/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp index 1d4fb6490bafa94021c709330a5c8db2c731d484..04fb50868293d12cb647f02d1a4c3e484bdf4bec 100644 --- a/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp +++ b/src/xercesc/util/NetAccessors/WinSock/BinHTTPURLInputStream.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.4 2003/05/17 05:54:18 knoaman + * Update NetAccessors to use the memory manager. + * * Revision 1.3 2002/12/06 16:43:55 tng * Fix the error messages thrown from net accessor module. * @@ -313,24 +316,24 @@ BinHTTPURLInputStream::BinHTTPURLInputStream(const XMLURL& urlSource) // and transcode them back to ASCII. // const XMLCh* hostName = urlSource.getHost(); - char* hostNameAsCharStar = XMLString::transcode(hostName); - ArrayJanitor<char> janBuf1(hostNameAsCharStar); + char* hostNameAsCharStar = XMLString::transcode(hostName, urlSource.getMemoryManager()); + ArrayJanitor<char> janBuf1(hostNameAsCharStar, urlSource.getMemoryManager()); const XMLCh* path = urlSource.getPath(); - char* pathAsCharStar = XMLString::transcode(path); - ArrayJanitor<char> janBuf2(pathAsCharStar); + char* pathAsCharStar = XMLString::transcode(path, urlSource.getMemoryManager()); + ArrayJanitor<char> janBuf2(pathAsCharStar, urlSource.getMemoryManager()); const XMLCh* fragment = urlSource.getFragment(); char* fragmentAsCharStar = 0; if (fragment) - fragmentAsCharStar = XMLString::transcode(fragment); - ArrayJanitor<char> janBuf3(fragmentAsCharStar); + fragmentAsCharStar = XMLString::transcode(fragment, urlSource.getMemoryManager()); + ArrayJanitor<char> janBuf3(fragmentAsCharStar, urlSource.getMemoryManager()); const XMLCh* query = urlSource.getQuery(); char* queryAsCharStar = 0; if (query) - queryAsCharStar = XMLString::transcode(query); - ArrayJanitor<char> janBuf4(queryAsCharStar); + queryAsCharStar = XMLString::transcode(query, urlSource.getMemoryManager()); + ArrayJanitor<char> janBuf4(queryAsCharStar, urlSource.getMemoryManager()); unsigned short portNumber = (unsigned short) urlSource.getPortNum(); diff --git a/src/xercesc/util/NetAccessors/WinSock/WinSockNetAccessor.cpp b/src/xercesc/util/NetAccessors/WinSock/WinSockNetAccessor.cpp index 72d4a28905a1f18d1b0be32b68bddbd30d981d40..ccd64d2b1a54d1036a18f967b3053250530d1f77 100644 --- a/src/xercesc/util/NetAccessors/WinSock/WinSockNetAccessor.cpp +++ b/src/xercesc/util/NetAccessors/WinSock/WinSockNetAccessor.cpp @@ -100,7 +100,7 @@ BinInputStream* WinSockNetAccessor::makeNew(const XMLURL& urlSource) case XMLURL::HTTP: { BinHTTPURLInputStream* retStrm = - new BinHTTPURLInputStream(urlSource); + new (urlSource.getMemoryManager()) BinHTTPURLInputStream(urlSource); return retStrm; break; } diff --git a/src/xercesc/util/NetAccessors/libWWW/BinURLInputStream.cpp b/src/xercesc/util/NetAccessors/libWWW/BinURLInputStream.cpp index a8e85e126715e7d9e07f61da245369798c97c065..7087dedf29cde4b3d0f78d5d3c998489599a8bf2 100644 --- a/src/xercesc/util/NetAccessors/libWWW/BinURLInputStream.cpp +++ b/src/xercesc/util/NetAccessors/libWWW/BinURLInputStream.cpp @@ -56,6 +56,9 @@ /** * $Log$ + * Revision 1.4 2003/05/17 05:54:18 knoaman + * Update NetAccessors to use the memory manager. + * * Revision 1.3 2002/12/06 16:42:13 tng * Fix the error messages thrown from net accessor module. * @@ -151,7 +154,10 @@ XERCES_CPP_NAMESPACE_BEGIN static char* localTranscode(const XMLCh* latinStrInUnicode) { unsigned int lent = XMLString::stringLen(latinStrInUnicode); - char* retval = new char[lent + 1]; + char* retval = (char*) XMLPlatformUtils::fgMemoryManager->allocate + ( + (lent + 1) * sizeof(char) + );//new char[lent + 1]; unsigned int i = 0; for (i = 0; i < lent; i++) retval[i] = (char) latinStrInUnicode[i]; // drop the leading byte. @@ -168,8 +174,12 @@ BinURLInputStream::BinURLInputStream(const XMLURL& urlSource) , fRemoteFileSize(0) , fAnchor(0) , fBytesProcessed(0) + , fMemoryManager(urlSource.getMemoryManager()) { - fBuffer = new XMLByte[URLISBUFMAXSIZE]; + fBuffer = (XMLByte*) fMemoryManager->allocate + ( + URLISBUFMAXSIZE * sizeof(XMLByte) + );//new XMLByte[URLISBUFMAXSIZE]; const XMLCh* uri = urlSource.getURLText(); char* uriAsCharStar = localTranscode(uri); @@ -213,7 +223,7 @@ BinURLInputStream::BinURLInputStream(const XMLURL& urlSource) BinURLInputStream::~BinURLInputStream() { - delete [] fBuffer; + fMemoryManager->deallocate(fBuffer);//delete [] fBuffer; fBuffer = 0; // Do not delete the fAnchor. Its deleted when the destructor of // libWWWNetAccessor is called. diff --git a/src/xercesc/util/NetAccessors/libWWW/BinURLInputStream.hpp b/src/xercesc/util/NetAccessors/libWWW/BinURLInputStream.hpp index 1fddf8b8ff16a56e2efe62e8e2a9d01393280853..52a08f660ef654704f97b5c0fdc67061d14223e3 100644 --- a/src/xercesc/util/NetAccessors/libWWW/BinURLInputStream.hpp +++ b/src/xercesc/util/NetAccessors/libWWW/BinURLInputStream.hpp @@ -56,6 +56,9 @@ /** * $Log$ + * Revision 1.3 2003/05/17 05:54:18 knoaman + * Update NetAccessors to use the memory manager. + * * Revision 1.2 2002/11/04 15:11:39 tng * C++ Namespace Support. * @@ -152,6 +155,7 @@ private : unsigned int fBufferSize; unsigned int fRemoteFileSize; unsigned int fBytesProcessed; + MemoryManager* fMemoryManager; }; XERCES_CPP_NAMESPACE_END diff --git a/src/xercesc/util/NetAccessors/libWWW/LibWWWNetAccessor.cpp b/src/xercesc/util/NetAccessors/libWWW/LibWWWNetAccessor.cpp index 1f03bf318bb00a3e9016dcb2ebeb39bc06ed6be6..f42991f8b66eaccfe91caac501ca3ff93cd50992 100644 --- a/src/xercesc/util/NetAccessors/libWWW/LibWWWNetAccessor.cpp +++ b/src/xercesc/util/NetAccessors/libWWW/LibWWWNetAccessor.cpp @@ -112,7 +112,7 @@ BinInputStream* LibWWWNetAccessor::makeNew(const XMLURL& urlSource) case XMLURL::HTTP: { BinURLInputStream* retStrm = - new BinURLInputStream(urlSource); + new (urlSource.getMemoryManager()) BinURLInputStream(urlSource); return retStrm; }