From ac16262dedab534b94d8f7f4c9da6bf1d045dee0 Mon Sep 17 00:00:00 2001 From: Khaled Noaman <knoaman@apache.org> Date: Fri, 16 May 2003 06:01:57 +0000 Subject: [PATCH] Partial implementation of the configurable memory manager. git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@174989 13f79535-47bb-0310-9956-ffa450edef68 --- src/xercesc/dom/impl/DOMDocumentImpl.cpp | 2 +- src/xercesc/dom/impl/DOMDocumentImpl.hpp | 6 ++++ src/xercesc/dom/impl/DOMElementImpl.cpp | 4 +-- src/xercesc/dom/impl/DOMElementNSImpl.cpp | 4 +-- src/xercesc/internal/IGXMLScanner.cpp | 1 + src/xercesc/internal/ReaderMgr.cpp | 3 +- src/xercesc/internal/SGXMLScanner.cpp | 1 + src/xercesc/internal/XMLScanner.cpp | 6 ++-- src/xercesc/parsers/AbstractDOMParser.cpp | 2 +- src/xercesc/parsers/SAX2XMLReaderImpl.cpp | 5 ++- src/xercesc/util/BaseRefVectorOf.c | 8 +++-- src/xercesc/util/BaseRefVectorOf.hpp | 7 +++- src/xercesc/util/CountedPointer.hpp | 6 ++-- src/xercesc/util/KVStringPair.cpp | 15 +++++--- src/xercesc/util/KVStringPair.hpp | 12 +++++-- src/xercesc/util/NameIdPool.c | 8 +++-- src/xercesc/util/NameIdPool.hpp | 4 +++ src/xercesc/util/QName.cpp | 23 +++++++----- src/xercesc/util/QName.hpp | 19 ++++++---- src/xercesc/util/RefArrayOf.c | 19 ++++++---- src/xercesc/util/RefArrayOf.hpp | 14 ++++++-- src/xercesc/util/RefArrayVectorOf.c | 6 +++- src/xercesc/util/RefArrayVectorOf.hpp | 4 ++- src/xercesc/util/RefHash3KeysIdPool.c | 18 ++++++---- src/xercesc/util/RefHash3KeysIdPool.hpp | 23 +++++++----- src/xercesc/util/RefStackOf.c | 11 ++++-- src/xercesc/util/RefStackOf.hpp | 7 +++- src/xercesc/util/RefVectorOf.c | 9 ++++- src/xercesc/util/RefVectorOf.hpp | 7 +++- src/xercesc/util/StringPool.cpp | 15 +++++--- src/xercesc/util/StringPool.hpp | 10 ++++-- .../Transcoders/Cygwin/CygwinTransService.cpp | 5 ++- .../Transcoders/Win32/Win32TransService.cpp | 29 ++++++++++----- src/xercesc/util/ValueArrayOf.c | 17 +++++---- src/xercesc/util/ValueArrayOf.hpp | 16 +++++++-- src/xercesc/util/ValueHashTableOf.c | 13 ++++--- src/xercesc/util/ValueHashTableOf.hpp | 13 +++++-- src/xercesc/util/ValueStackOf.c | 10 ++++-- src/xercesc/util/ValueStackOf.hpp | 9 ++++- src/xercesc/util/ValueVectorOf.c | 10 ++++-- src/xercesc/util/ValueVectorOf.hpp | 9 ++++- src/xercesc/util/XMLAbstractDoubleFloat.cpp | 7 ++-- src/xercesc/util/XMLAbstractDoubleFloat.hpp | 5 ++- src/xercesc/util/XMLBigDecimal.cpp | 8 +++-- src/xercesc/util/XMLBigDecimal.hpp | 6 +++- src/xercesc/util/XMLBigInteger.cpp | 8 +++-- src/xercesc/util/XMLBigInteger.hpp | 7 ++-- src/xercesc/util/XMLDouble.cpp | 8 +++-- src/xercesc/util/XMLDouble.hpp | 6 +++- src/xercesc/util/XMLFloat.cpp | 8 +++-- src/xercesc/util/XMLFloat.hpp | 6 +++- src/xercesc/util/XMLURL.cpp | 36 ++++++++++--------- src/xercesc/util/XMLURL.hpp | 8 +++-- src/xercesc/util/XMLUri.cpp | 12 ++++--- src/xercesc/util/XMLUri.hpp | 11 ++++-- src/xercesc/util/regx/RegularExpression.cpp | 31 +++++++++------- src/xercesc/util/regx/RegularExpression.hpp | 26 +++++++++++--- .../datatype/AbstractStringValidator.cpp | 5 ++- .../datatype/AnyURIDatatypeValidator.cpp | 7 ++-- .../datatype/BooleanDatatypeValidator.cpp | 5 ++- .../validators/datatype/DateTimeValidator.cpp | 5 ++- .../datatype/DecimalDatatypeValidator.cpp | 5 ++- .../datatype/DoubleDatatypeValidator.cpp | 5 ++- .../datatype/FloatDatatypeValidator.cpp | 5 ++- .../datatype/ListDatatypeValidator.cpp | 5 ++- .../datatype/NOTATIONDatatypeValidator.cpp | 19 +++++++--- .../datatype/UnionDatatypeValidator.cpp | 5 ++- 67 files changed, 486 insertions(+), 183 deletions(-) diff --git a/src/xercesc/dom/impl/DOMDocumentImpl.cpp b/src/xercesc/dom/impl/DOMDocumentImpl.cpp index f792dab9f..1551a838f 100644 --- a/src/xercesc/dom/impl/DOMDocumentImpl.cpp +++ b/src/xercesc/dom/impl/DOMDocumentImpl.cpp @@ -1329,7 +1329,7 @@ void DOMDocumentImpl::releaseDocNotifyUserData(DOMNode* object) void DOMDocumentImpl::release(DOMNode* object, NodeObjectType type) { if (!fRecycleNodePtr) - fRecycleNodePtr = new (fMemoryManager) RefArrayOf<DOMNodePtr> (15); + fRecycleNodePtr = new (fMemoryManager) RefArrayOf<DOMNodePtr> (15, fMemoryManager); if (!fRecycleNodePtr->operator[](type)) fRecycleNodePtr->operator[](type) = new (fMemoryManager) RefStackOf<DOMNode> (15, false); diff --git a/src/xercesc/dom/impl/DOMDocumentImpl.hpp b/src/xercesc/dom/impl/DOMDocumentImpl.hpp index 9455027e6..7c37f4c00 100644 --- a/src/xercesc/dom/impl/DOMDocumentImpl.hpp +++ b/src/xercesc/dom/impl/DOMDocumentImpl.hpp @@ -305,6 +305,7 @@ public: void releaseDocNotifyUserData(DOMNode* object); void releaseBuffer(DOMBuffer* buffer); DOMBuffer* popBuffer(); + MemoryManager* getMemoryManager() const; // Factory methods for getting/creating node lists. // Because nothing is ever deleted, the implementation caches and recycles @@ -377,6 +378,11 @@ private: }; +inline MemoryManager* DOMDocumentImpl::getMemoryManager() const +{ + return fMemoryManager; +} + XERCES_CPP_NAMESPACE_END // --------------------------------------------------------------------------- diff --git a/src/xercesc/dom/impl/DOMElementImpl.cpp b/src/xercesc/dom/impl/DOMElementImpl.cpp index 73819947d..af44c83a7 100644 --- a/src/xercesc/dom/impl/DOMElementImpl.cpp +++ b/src/xercesc/dom/impl/DOMElementImpl.cpp @@ -536,8 +536,8 @@ const XMLCh* DOMElementImpl::getBaseURI() const const XMLCh* uri = attrNode->getNodeValue(); if (uri && *uri) {// attribute value is always empty string try { - XMLUri temp(baseURI); - XMLUri temp2(&temp, uri); + XMLUri temp(baseURI, ((DOMDocumentImpl *)this->getOwnerDocument())->getMemoryManager()); + XMLUri temp2(&temp, uri, ((DOMDocumentImpl *)this->getOwnerDocument())->getMemoryManager()); uri = ((DOMDocumentImpl *)this->getOwnerDocument())->cloneString(temp2.getUriText()); } catch (...){ diff --git a/src/xercesc/dom/impl/DOMElementNSImpl.cpp b/src/xercesc/dom/impl/DOMElementNSImpl.cpp index 10fe6b0e8..7cd46d691 100644 --- a/src/xercesc/dom/impl/DOMElementNSImpl.cpp +++ b/src/xercesc/dom/impl/DOMElementNSImpl.cpp @@ -127,8 +127,8 @@ const XMLCh* DOMElementNSImpl::getBaseURI() const const XMLCh* uri = attrNode->getNodeValue(); if (uri && *uri) {// attribute value is always empty string try { - XMLUri temp(baseURI); - XMLUri temp2(&temp, uri); + XMLUri temp(baseURI, ((DOMDocumentImpl *)this->getOwnerDocument())->getMemoryManager()); + XMLUri temp2(&temp, uri, ((DOMDocumentImpl *)this->getOwnerDocument())->getMemoryManager()); uri = ((DOMDocumentImpl *)this->getOwnerDocument())->cloneString(temp2.getUriText()); } catch (...){ diff --git a/src/xercesc/internal/IGXMLScanner.cpp b/src/xercesc/internal/IGXMLScanner.cpp index e4ac69b68..ee63cd197 100644 --- a/src/xercesc/internal/IGXMLScanner.cpp +++ b/src/xercesc/internal/IGXMLScanner.cpp @@ -698,6 +698,7 @@ IGXMLScanner::rawAttrScan(const XMLCh* const elemName ( fAttNameBuf.getRawBuffer() , fAttValueBuf.getRawBuffer() + , fMemoryManager ); toFill.addElement(curPair); } diff --git a/src/xercesc/internal/ReaderMgr.cpp b/src/xercesc/internal/ReaderMgr.cpp index 50bd4747a..06bb4f061 100644 --- a/src/xercesc/internal/ReaderMgr.cpp +++ b/src/xercesc/internal/ReaderMgr.cpp @@ -731,7 +731,8 @@ ReaderMgr::createIntEntReader( const XMLCh* const sysId (const XMLByte*)dataBuf , dataLen * sizeof(XMLCh) , copyBuf ? BinMemInputStream::BufOpt_Copy - : BinMemInputStream::BufOpt_Reference + : BinMemInputStream::BufOpt_Reference + , fMemoryManager ); if (!newStream) return 0; diff --git a/src/xercesc/internal/SGXMLScanner.cpp b/src/xercesc/internal/SGXMLScanner.cpp index 70c4dd0de..a41ff62d3 100644 --- a/src/xercesc/internal/SGXMLScanner.cpp +++ b/src/xercesc/internal/SGXMLScanner.cpp @@ -660,6 +660,7 @@ SGXMLScanner::rawAttrScan(const XMLCh* const elemName ( fAttNameBuf.getRawBuffer() , fAttValueBuf.getRawBuffer() + , fMemoryManager ); toFill.addElement(curPair); } diff --git a/src/xercesc/internal/XMLScanner.cpp b/src/xercesc/internal/XMLScanner.cpp index 212097767..429fb9999 100644 --- a/src/xercesc/internal/XMLScanner.cpp +++ b/src/xercesc/internal/XMLScanner.cpp @@ -327,7 +327,7 @@ void XMLScanner::scanDocument( const XMLCh* const systemId) // Create a temporary URL. Since this is the primary document, // it has to be fully qualified. If not, then assume we are just // mistaking a file for a URL. - XMLURL tmpURL(systemId); + XMLURL tmpURL(systemId, fMemoryManager); if (tmpURL.isRelative()) { if (!fStandardUriConformant) srcToUse = new (fMemoryManager) LocalFileInputSource(systemId); @@ -444,7 +444,7 @@ bool XMLScanner::scanFirst( const XMLCh* const systemId // Create a temporary URL. Since this is the primary document, // it has to be fully qualified. If not, then assume we are just // mistaking a file for a URL. - XMLURL tmpURL(systemId); + XMLURL tmpURL(systemId, fMemoryManager); if (tmpURL.isRelative()) { if (!fStandardUriConformant) srcToUse = new (fMemoryManager) LocalFileInputSource(systemId); @@ -1571,7 +1571,7 @@ Grammar* XMLScanner::loadGrammar(const XMLCh* const systemId // Create a temporary URL. Since this is the primary document, // it has to be fully qualified. If not, then assume we are just // mistaking a file for a URL. - XMLURL tmpURL(systemId); + XMLURL tmpURL(systemId, fMemoryManager); if (tmpURL.isRelative()) { if (!fStandardUriConformant) diff --git a/src/xercesc/parsers/AbstractDOMParser.cpp b/src/xercesc/parsers/AbstractDOMParser.cpp index 22bb08dd0..d470ac618 100644 --- a/src/xercesc/parsers/AbstractDOMParser.cpp +++ b/src/xercesc/parsers/AbstractDOMParser.cpp @@ -160,7 +160,7 @@ void AbstractDOMParser::initialize() fScanner->setGrammarResolver(fGrammarResolver); fScanner->setURIStringPool(fURIStringPool); - fNodeStack = new (fMemoryManager) ValueStackOf<DOMNode*>(64); + fNodeStack = new (fMemoryManager) ValueStackOf<DOMNode*>(64, fMemoryManager); this->reset(); } diff --git a/src/xercesc/parsers/SAX2XMLReaderImpl.cpp b/src/xercesc/parsers/SAX2XMLReaderImpl.cpp index 81c7952fd..63bd471ca 100644 --- a/src/xercesc/parsers/SAX2XMLReaderImpl.cpp +++ b/src/xercesc/parsers/SAX2XMLReaderImpl.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.19 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.18 2003/05/15 18:26:50 knoaman * Partial implementation of the configurable memory manager. * @@ -356,7 +359,7 @@ void SAX2XMLReaderImpl::initialize() fPrefixes = new (fMemoryManager) RefStackOf<XMLBuffer> (10, false) ; fTempAttrVec = new (fMemoryManager) RefVectorOf<XMLAttr> (10, false) ; - fPrefixCounts = new (fMemoryManager) ValueStackOf<unsigned int>(10) ; + fPrefixCounts = new (fMemoryManager) ValueStackOf<unsigned int>(10, fMemoryManager) ; } diff --git a/src/xercesc/util/BaseRefVectorOf.c b/src/xercesc/util/BaseRefVectorOf.c index 441e98738..03d5e05ea 100644 --- a/src/xercesc/util/BaseRefVectorOf.c +++ b/src/xercesc/util/BaseRefVectorOf.c @@ -65,14 +65,16 @@ XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- // BaseRefVectorOf: Constructors and Destructor // --------------------------------------------------------------------------- -template <class TElem> BaseRefVectorOf<TElem>:: -BaseRefVectorOf(const unsigned int maxElems, const bool adoptElems) : +template <class TElem> +BaseRefVectorOf<TElem>::BaseRefVectorOf( const unsigned int maxElems + , const bool adoptElems + , MemoryManager* const manager) : fAdoptedElems(adoptElems) , fCurCount(0) , fMaxCount(maxElems) , fElemList(0) - , fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , fMemoryManager(manager) { // Allocate and initialize the array fElemList = (TElem**) fMemoryManager->allocate(maxElems * sizeof(TElem*));//new TElem*[maxElems]; diff --git a/src/xercesc/util/BaseRefVectorOf.hpp b/src/xercesc/util/BaseRefVectorOf.hpp index e8b467cd7..352184bf7 100644 --- a/src/xercesc/util/BaseRefVectorOf.hpp +++ b/src/xercesc/util/BaseRefVectorOf.hpp @@ -76,7 +76,12 @@ public : // ----------------------------------------------------------------------- // Constructors and Destructor // ----------------------------------------------------------------------- - BaseRefVectorOf(const unsigned int maxElems, const bool adoptElems = true); + BaseRefVectorOf + ( + const unsigned int maxElems + , const bool adoptElems = true + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); virtual ~BaseRefVectorOf() = 0; diff --git a/src/xercesc/util/CountedPointer.hpp b/src/xercesc/util/CountedPointer.hpp index 27646d082..1bd159d7f 100644 --- a/src/xercesc/util/CountedPointer.hpp +++ b/src/xercesc/util/CountedPointer.hpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.3 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.2 2002/11/04 15:22:03 tng * C++ Namespace Support. * @@ -85,12 +88,11 @@ #if !defined(COUNTEDPOINTERTO_HPP) #define COUNTEDPOINTERTO_HPP -#include <xercesc/util/XercesDefs.hpp> #include <xercesc/util/NullPointerException.hpp> XERCES_CPP_NAMESPACE_BEGIN -template <class T> class CountedPointerTo +template <class T> class CountedPointerTo : public XMemory { public: // ----------------------------------------------------------------------- diff --git a/src/xercesc/util/KVStringPair.cpp b/src/xercesc/util/KVStringPair.cpp index 329725fed..81393faf5 100644 --- a/src/xercesc/util/KVStringPair.cpp +++ b/src/xercesc/util/KVStringPair.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.4 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.3 2003/05/15 19:04:35 knoaman * Partial implementation of the configurable memory manager. * @@ -125,9 +128,9 @@ XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- // KVStringPair: Constructors and Destructor // --------------------------------------------------------------------------- -KVStringPair::KVStringPair() : +KVStringPair::KVStringPair(MemoryManager* const manager) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) , fKey(0) , fKeyAllocSize(0) , fValue(0) @@ -135,9 +138,11 @@ KVStringPair::KVStringPair() : { } -KVStringPair::KVStringPair(const XMLCh* const key, const XMLCh* const value) : +KVStringPair::KVStringPair(const XMLCh* const key, + const XMLCh* const value, + MemoryManager* const manager) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) , fKey(0) , fKeyAllocSize(0) , fValue(0) @@ -148,7 +153,7 @@ KVStringPair::KVStringPair(const XMLCh* const key, const XMLCh* const value) : KVStringPair::KVStringPair(const KVStringPair& toCopy) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(toCopy.fMemoryManager) , fKey(0) , fKeyAllocSize(0) , fValue(0) diff --git a/src/xercesc/util/KVStringPair.hpp b/src/xercesc/util/KVStringPair.hpp index 932446630..665c9dae1 100644 --- a/src/xercesc/util/KVStringPair.hpp +++ b/src/xercesc/util/KVStringPair.hpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.4 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.3 2003/05/15 19:04:35 knoaman * Partial implementation of the configurable memory manager. * @@ -135,8 +138,13 @@ public: // ----------------------------------------------------------------------- // Constructors and Destructor // ----------------------------------------------------------------------- - KVStringPair(); - KVStringPair(const XMLCh* const key, const XMLCh* const value); + KVStringPair(MemoryManager* const manager); + KVStringPair + ( + const XMLCh* const key + , const XMLCh* const value + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); KVStringPair(const KVStringPair& toCopy); ~KVStringPair(); diff --git a/src/xercesc/util/NameIdPool.c b/src/xercesc/util/NameIdPool.c index 85d4af10b..fd33b77ed 100644 --- a/src/xercesc/util/NameIdPool.c +++ b/src/xercesc/util/NameIdPool.c @@ -56,6 +56,9 @@ /** * $Log$ + * Revision 1.6 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.5 2003/05/15 19:04:35 knoaman * Partial implementation of the configurable memory manager. * @@ -123,8 +126,9 @@ template <class TElem> NameIdPoolBucketElem<TElem>::~NameIdPoolBucketElem() // --------------------------------------------------------------------------- template <class TElem> NameIdPool<TElem>::NameIdPool( const unsigned int hashModulus - , const unsigned int initSize) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , const unsigned int initSize + , MemoryManager* const manager) : + fMemoryManager(manager) , fBucketList(0) , fIdPtrs(0) , fIdPtrsCount(initSize) diff --git a/src/xercesc/util/NameIdPool.hpp b/src/xercesc/util/NameIdPool.hpp index c1d1d9bf4..bb7665d69 100644 --- a/src/xercesc/util/NameIdPool.hpp +++ b/src/xercesc/util/NameIdPool.hpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.6 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.5 2003/05/15 19:04:35 knoaman * Partial implementation of the configurable memory manager. * @@ -164,6 +167,7 @@ public : ( const unsigned int hashModulus , const unsigned int initSize = 128 + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); ~NameIdPool(); diff --git a/src/xercesc/util/QName.cpp b/src/xercesc/util/QName.cpp index 8d597e472..b39d53649 100644 --- a/src/xercesc/util/QName.cpp +++ b/src/xercesc/util/QName.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.8 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.7 2003/05/15 19:04:35 knoaman * Partial implementation of the configurable memory manager. * @@ -113,9 +116,9 @@ XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- // QName: Constructors and Destructor // --------------------------------------------------------------------------- -QName::QName() : +QName::QName(MemoryManager* const manager) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) , fPrefix(0) , fPrefixBufSz(0) , fLocalPart(0) @@ -126,11 +129,12 @@ QName::QName() : { } -QName::QName( const XMLCh* const prefix - , const XMLCh* const localPart - , const unsigned int uriId) : +QName::QName( const XMLCh* const prefix + , const XMLCh* const localPart + , const unsigned int uriId + , MemoryManager* const manager) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) , fPrefix(0) , fPrefixBufSz(0) , fLocalPart(0) @@ -154,9 +158,10 @@ QName::QName( const XMLCh* const prefix } QName::QName( const XMLCh* const rawName - , const unsigned int uriId) : + , const unsigned int uriId + , MemoryManager* const manager) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) , fPrefix(0) , fPrefixBufSz(0) , fLocalPart(0) @@ -189,7 +194,7 @@ QName::~QName() // --------------------------------------------------------------------------- QName::QName(const QName& qname) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(qname.fMemoryManager) , fPrefix(0) , fPrefixBufSz(0) , fLocalPart(0) diff --git a/src/xercesc/util/QName.hpp b/src/xercesc/util/QName.hpp index cbe69d8d8..e259d37f6 100644 --- a/src/xercesc/util/QName.hpp +++ b/src/xercesc/util/QName.hpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.7 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.6 2003/05/15 19:04:35 knoaman * Partial implementation of the configurable memory manager. * @@ -120,19 +123,23 @@ public : // Contructors and Destructor // ----------------------------------------------------------------------- /** Default constructor. */ - QName(); + QName(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); /** Constructs a specified qname using prefix, and localpart. */ QName - ( const XMLCh* const prefix - , const XMLCh* const localPart - , const unsigned int uriId + ( + const XMLCh* const prefix + , const XMLCh* const localPart + , const unsigned int uriId + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); /** Constructs a specified qname using rawName. */ QName - ( const XMLCh* const rawName - , const unsigned int uriId + ( + const XMLCh* const rawName + , const unsigned int uriId + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); /** Copy constructor. */ diff --git a/src/xercesc/util/RefArrayOf.c b/src/xercesc/util/RefArrayOf.c index ec0377f3f..7e31f49ce 100644 --- a/src/xercesc/util/RefArrayOf.c +++ b/src/xercesc/util/RefArrayOf.c @@ -56,6 +56,9 @@ /** * $Log$ + * Revision 1.4 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.3 2003/05/15 19:04:35 knoaman * Partial implementation of the configurable memory manager. * @@ -94,23 +97,27 @@ XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- // RefArrayOf: Contructors and Destructor // --------------------------------------------------------------------------- -template <class TElem> RefArrayOf<TElem>::RefArrayOf(const unsigned int size) : +template <class TElem> +RefArrayOf<TElem>::RefArrayOf(const unsigned int size, + MemoryManager* const manager) : fSize(size) , fArray(0) - , fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , fMemoryManager(manager) { fArray = (TElem**) fMemoryManager->allocate(fSize * sizeof(TElem*));//new TElem*[fSize]; for (unsigned int index = 0; index < fSize; index++) fArray[index] = 0; } -template <class TElem> RefArrayOf<TElem>:: -RefArrayOf(TElem* values[], const unsigned int size) : +template <class TElem> +RefArrayOf<TElem>::RefArrayOf(TElem* values[], + const unsigned int size, + MemoryManager* const manager) : fSize(size) , fArray(0) - , fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , fMemoryManager(manager) { fArray = (TElem**) fMemoryManager->allocate(fSize * sizeof(TElem*));//new TElem*[fSize]; for (unsigned int index = 0; index < fSize; index++) @@ -122,7 +129,7 @@ RefArrayOf(const RefArrayOf<TElem>& source) : fSize(source.fSize) , fArray(0) - , fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , fMemoryManager(source.fMemoryManager) { fArray = (TElem**) fMemoryManager->allocate(fSize * sizeof(TElem*));//new TElem*[fSize]; for (unsigned int index = 0; index < fSize; index++) diff --git a/src/xercesc/util/RefArrayOf.hpp b/src/xercesc/util/RefArrayOf.hpp index 4c2416ab8..ad66ce6b5 100644 --- a/src/xercesc/util/RefArrayOf.hpp +++ b/src/xercesc/util/RefArrayOf.hpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.5 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.4 2003/05/15 19:04:35 knoaman * Partial implementation of the configurable memory manager. * @@ -104,8 +107,15 @@ public : // ----------------------------------------------------------------------- // Contructors and Destructor // ----------------------------------------------------------------------- - RefArrayOf(const unsigned int size); - RefArrayOf(TElem* values[], const unsigned int size); + RefArrayOf + ( + const unsigned int size + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); + RefArrayOf + ( + TElem* values[] + , const unsigned int size + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); RefArrayOf(const RefArrayOf<TElem>& source); ~RefArrayOf(); diff --git a/src/xercesc/util/RefArrayVectorOf.c b/src/xercesc/util/RefArrayVectorOf.c index 0f2330740..28b23faec 100644 --- a/src/xercesc/util/RefArrayVectorOf.c +++ b/src/xercesc/util/RefArrayVectorOf.c @@ -11,7 +11,11 @@ XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- // RefArrayVectorOf: Constructor and Destructor // --------------------------------------------------------------------------- -template <class TElem> RefArrayVectorOf<TElem>::RefArrayVectorOf(const unsigned int maxElems, const bool adoptElems) : BaseRefVectorOf<TElem>(maxElems, adoptElems) +template <class TElem> +RefArrayVectorOf<TElem>::RefArrayVectorOf( const unsigned int maxElems + , const bool adoptElems + , MemoryManager* const manager) + : BaseRefVectorOf<TElem>(maxElems, adoptElems, manager) { } diff --git a/src/xercesc/util/RefArrayVectorOf.hpp b/src/xercesc/util/RefArrayVectorOf.hpp index 72837b05d..2a3a1d49b 100644 --- a/src/xercesc/util/RefArrayVectorOf.hpp +++ b/src/xercesc/util/RefArrayVectorOf.hpp @@ -15,7 +15,9 @@ public : // ----------------------------------------------------------------------- // Constructor // ----------------------------------------------------------------------- - RefArrayVectorOf(const unsigned int maxElems, const bool adoptElems = true); + RefArrayVectorOf( const unsigned int maxElems + , const bool adoptElems = true + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); // ----------------------------------------------------------------------- // Destructor diff --git a/src/xercesc/util/RefHash3KeysIdPool.c b/src/xercesc/util/RefHash3KeysIdPool.c index 5e8716ef1..10f5ad051 100644 --- a/src/xercesc/util/RefHash3KeysIdPool.c +++ b/src/xercesc/util/RefHash3KeysIdPool.c @@ -56,6 +56,9 @@ /** * $Log$ + * Revision 1.4 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.3 2003/05/15 19:04:35 knoaman * Partial implementation of the configurable memory manager. * @@ -97,8 +100,9 @@ XERCES_CPP_NAMESPACE_BEGIN template <class TVal> RefHash3KeysIdPool<TVal>::RefHash3KeysIdPool( const unsigned int modulus , const bool adoptElems - , const unsigned int initSize) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , const unsigned int initSize + , MemoryManager* const manager) : + fMemoryManager(manager) , fAdoptedElems(adoptElems) , fBucketList(0) , fHashModulus(modulus) @@ -127,8 +131,9 @@ template <class TVal> RefHash3KeysIdPool<TVal>::RefHash3KeysIdPool( const unsigned int modulus , const bool adoptElems , HashBase* hashBase - , const unsigned int initSize) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , const unsigned int initSize + , MemoryManager* const manager) : + fMemoryManager(manager) , fAdoptedElems(adoptElems) , fBucketList(0) , fHashModulus(modulus) @@ -154,8 +159,9 @@ RefHash3KeysIdPool<TVal>::RefHash3KeysIdPool( const unsigned int modulus template <class TVal> RefHash3KeysIdPool<TVal>::RefHash3KeysIdPool( const unsigned int modulus - , const unsigned int initSize) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , const unsigned int initSize + , MemoryManager* const manager) : + fMemoryManager(manager) , fAdoptedElems(true) , fBucketList(0) , fHashModulus(modulus) diff --git a/src/xercesc/util/RefHash3KeysIdPool.hpp b/src/xercesc/util/RefHash3KeysIdPool.hpp index dd7ead551..e3d1bf2ba 100644 --- a/src/xercesc/util/RefHash3KeysIdPool.hpp +++ b/src/xercesc/util/RefHash3KeysIdPool.hpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.5 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.4 2003/05/15 19:04:35 knoaman * Partial implementation of the configurable memory manager. * @@ -150,16 +153,18 @@ public: // backwards compatability - default hasher is HashXMLCh RefHash3KeysIdPool ( - const unsigned int modulus - , const unsigned int initSize = 128 + const unsigned int modulus + , const unsigned int initSize = 128 + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); // backwards compatability - default hasher is HashXMLCh RefHash3KeysIdPool ( - const unsigned int modulus - , const bool adoptElems - , const unsigned int initSize = 128 + const unsigned int modulus + , const bool adoptElems + , const unsigned int initSize = 128 + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); // if a hash function is passed in, it will be deleted when the hashtable is deleted. @@ -167,9 +172,11 @@ public: // may delete the hasher of a different hashtable if both use the same hasher. RefHash3KeysIdPool ( - const unsigned int modulus - , const bool adoptElems, HashBase* hashBase - , const unsigned int initSize = 128 + const unsigned int modulus + , const bool adoptElems + , HashBase* hashBase + , const unsigned int initSize = 128 + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); ~RefHash3KeysIdPool(); diff --git a/src/xercesc/util/RefStackOf.c b/src/xercesc/util/RefStackOf.c index 10f8aec19..d16ef9eb3 100644 --- a/src/xercesc/util/RefStackOf.c +++ b/src/xercesc/util/RefStackOf.c @@ -56,6 +56,9 @@ /** * $Log$ + * Revision 1.3 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.2 2002/11/04 15:22:04 tng * C++ Namespace Support. * @@ -91,10 +94,12 @@ XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- // RefStackOf: Constructors and Destructor // --------------------------------------------------------------------------- -template <class TElem> RefStackOf<TElem>:: -RefStackOf(const unsigned int initElems, const bool adoptElems) : +template <class TElem> +RefStackOf<TElem>::RefStackOf(const unsigned int initElems, + const bool adoptElems, + MemoryManager* const manager) : - fVector(initElems, adoptElems) + fVector(initElems, adoptElems, manager) { } diff --git a/src/xercesc/util/RefStackOf.hpp b/src/xercesc/util/RefStackOf.hpp index 25f676816..a2f2213c0 100644 --- a/src/xercesc/util/RefStackOf.hpp +++ b/src/xercesc/util/RefStackOf.hpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.5 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.4 2003/05/15 19:07:45 knoaman * Partial implementation of the configurable memory manager. * @@ -108,7 +111,9 @@ public : // ----------------------------------------------------------------------- // Constructors and Destructor // ----------------------------------------------------------------------- - RefStackOf(const unsigned int initElems, const bool adoptElems = true); + RefStackOf(const unsigned int initElems, + const bool adoptElems = true, + MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); ~RefStackOf(); diff --git a/src/xercesc/util/RefVectorOf.c b/src/xercesc/util/RefVectorOf.c index 2cfe842c4..2ef155dc1 100644 --- a/src/xercesc/util/RefVectorOf.c +++ b/src/xercesc/util/RefVectorOf.c @@ -56,6 +56,9 @@ /** * $Log$ + * Revision 1.9 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.8 2003/05/15 19:07:45 knoaman * Partial implementation of the configurable memory manager. * @@ -118,7 +121,11 @@ XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- // RefVectorOf: Constructors and Destructor // --------------------------------------------------------------------------- -template <class TElem> RefVectorOf<TElem>::RefVectorOf(const unsigned int maxElems, const bool adoptElems) : BaseRefVectorOf<TElem>(maxElems, adoptElems) +template <class TElem> +RefVectorOf<TElem>::RefVectorOf(const unsigned int maxElems, + const bool adoptElems, + MemoryManager* const manager) + : BaseRefVectorOf<TElem>(maxElems, adoptElems, manager) { } diff --git a/src/xercesc/util/RefVectorOf.hpp b/src/xercesc/util/RefVectorOf.hpp index 3d3e3dee0..3989fec57 100644 --- a/src/xercesc/util/RefVectorOf.hpp +++ b/src/xercesc/util/RefVectorOf.hpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.8 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.7 2003/05/15 19:07:45 knoaman * Partial implementation of the configurable memory manager. * @@ -118,7 +121,9 @@ public : // ----------------------------------------------------------------------- // Constructor // ----------------------------------------------------------------------- - RefVectorOf(const unsigned int maxElems, const bool adoptElems = true); + RefVectorOf(const unsigned int maxElems, + const bool adoptElems = true, + MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); // ----------------------------------------------------------------------- // Destructor diff --git a/src/xercesc/util/StringPool.cpp b/src/xercesc/util/StringPool.cpp index 376eed258..e395692df 100644 --- a/src/xercesc/util/StringPool.cpp +++ b/src/xercesc/util/StringPool.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.4 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.3 2003/05/15 19:07:45 knoaman * Partial implementation of the configurable memory manager. * @@ -103,10 +106,11 @@ XERCES_CPP_NAMESPACE_BEGIN // StringPool::PoolElem: Constructors and Destructor // --------------------------------------------------------------------------- XMLStringPool::PoolElem::PoolElem( const XMLCh* const string - , const unsigned int id) : + , const unsigned int id + , MemoryManager* const manager) : fId(id) , fString(0) - , fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , fMemoryManager(manager) { fString = XMLString::replicate(string, fMemoryManager); } @@ -133,9 +137,10 @@ XMLStringPool::PoolElem::reset(const XMLCh* const string, const unsigned int id) // --------------------------------------------------------------------------- // XMLStringPool: Constructors and Destructor // --------------------------------------------------------------------------- -XMLStringPool::XMLStringPool(const unsigned int modulus) : +XMLStringPool::XMLStringPool(const unsigned int modulus, + MemoryManager* const manager) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) , fIdMap(0) , fHashTable(0) , fMapCapacity(64) @@ -246,7 +251,7 @@ unsigned int XMLStringPool::addNewEntry(const XMLCh* const newString) // this new element in the id map at the current id index, then bump the // id index. // - PoolElem* newElem = new (fMemoryManager) PoolElem(newString, fCurId); + PoolElem* newElem = new (fMemoryManager) PoolElem(newString, fCurId, fMemoryManager); fHashTable->put((void*)(newElem->getKey()), newElem); fIdMap[fCurId] = newElem; diff --git a/src/xercesc/util/StringPool.hpp b/src/xercesc/util/StringPool.hpp index 8d82ba3be..ca6b8bda1 100644 --- a/src/xercesc/util/StringPool.hpp +++ b/src/xercesc/util/StringPool.hpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.5 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.4 2003/05/15 19:07:45 knoaman * Partial implementation of the configurable memory manager. * @@ -116,7 +119,8 @@ public : // ----------------------------------------------------------------------- XMLStringPool ( - const unsigned int modulus = 109 + const unsigned int modulus = 109 + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); ~XMLStringPool(); @@ -139,7 +143,9 @@ private : class PoolElem : public XMemory { public : - PoolElem(const XMLCh* const string, const unsigned int id); + PoolElem(const XMLCh* const string, + const unsigned int id, + MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); ~PoolElem(); inline const XMLCh* getKey() const { return fString; } diff --git a/src/xercesc/util/Transcoders/Cygwin/CygwinTransService.cpp b/src/xercesc/util/Transcoders/Cygwin/CygwinTransService.cpp index bc40178da..9f9b1248f 100644 --- a/src/xercesc/util/Transcoders/Cygwin/CygwinTransService.cpp +++ b/src/xercesc/util/Transcoders/Cygwin/CygwinTransService.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.6 2003/05/16 06:01:57 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.5 2003/05/15 18:47:02 knoaman * Partial implementation of the configurable memory manager. * @@ -144,7 +147,7 @@ static const LCID gLocaleId = // This is the simple CPMapEntry class. It just contains an encoding name // and a code page for that encoding. // --------------------------------------------------------------------------- -class CPMapEntry +class CPMapEntry : public XMemory { public : // ----------------------------------------------------------------------- diff --git a/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp b/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp index ab73a9bd7..3a997adc6 100644 --- a/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp +++ b/src/xercesc/util/Transcoders/Win32/Win32TransService.cpp @@ -92,7 +92,7 @@ static const XMLCh gMyServiceId[] = // This is the simple CPMapEntry class. It just contains an encoding name // and a code page for that encoding. // --------------------------------------------------------------------------- -class CPMapEntry +class CPMapEntry : public XMemory { public : // ----------------------------------------------------------------------- @@ -170,7 +170,10 @@ CPMapEntry::CPMapEntry( const char* const encodingName const unsigned int targetLen = srcLen/charLen; - fEncodingName = new XMLCh[targetLen + 1]; + fEncodingName = (XMLCh*) XMLPlatformUtils::fgMemoryManager->allocate + ( + (targetLen + 1) * sizeof(XMLCh) + );//new XMLCh[targetLen + 1]; ::mbstowcs(fEncodingName, encodingName, srcLen); fEncodingName[targetLen] = 0; @@ -201,7 +204,7 @@ CPMapEntry::CPMapEntry( const XMLCh* const encodingName CPMapEntry::~CPMapEntry() { - delete [] fEncodingName; + XMLPlatformUtils::fgMemoryManager->deallocate(fEncodingName);//delete [] fEncodingName; } @@ -407,7 +410,10 @@ Win32TransService::Win32TransService() if (charLen != -1) { const unsigned int targetLen = srcLen/charLen; - XMLCh* uniAlias = new XMLCh[targetLen + 1]; + XMLCh* uniAlias = (XMLCh*) XMLPlatformUtils::fgMemoryManager->allocate + ( + (targetLen + 1) * sizeof(XMLCh) + );//new XMLCh[targetLen + 1]; ::mbstowcs(uniAlias, aliasBuf, srcLen); uniAlias[targetLen] = 0; _wcsupr(uniAlias); @@ -420,7 +426,10 @@ Win32TransService::Win32TransService() const unsigned charLen = ::mblen(nameBuf, MB_CUR_MAX); const unsigned int targetLen = srcLen/charLen; - XMLCh* uniName = new XMLCh[targetLen + 1]; + XMLCh* uniName = (XMLCh*) XMLPlatformUtils::fgMemoryManager->allocate + ( + (targetLen + 1) * sizeof(XMLCh) + );//new XMLCh[targetLen + 1]; ::mbstowcs(uniName, nameBuf, srcLen); uniName[targetLen] = 0; _wcsupr(uniName); @@ -436,9 +445,9 @@ Win32TransService::Win32TransService() fCPMap->put((void*)newEntry->getEncodingName(), newEntry); } - delete [] uniName; + XMLPlatformUtils::fgMemoryManager->deallocate(uniName);//delete [] uniName; } - delete [] uniAlias; + XMLPlatformUtils::fgMemoryManager->deallocate(uniAlias);//delete [] uniAlias; } } @@ -866,7 +875,8 @@ unsigned int Win32LCPTranscoder::calcRequiredSize(const XMLCh* const srcText) return retVal; } - +// Return value using global operator new +// Revisit: deprecate ? char* Win32LCPTranscoder::transcode(const XMLCh* const toTranscode) { if (!toTranscode) @@ -932,7 +942,8 @@ char* Win32LCPTranscoder::transcode(const XMLCh* const toTranscode, return retVal; } - +// Return value using global operator new +// Revisit: deprecate ? XMLCh* Win32LCPTranscoder::transcode(const char* const toTranscode) { if (!toTranscode) diff --git a/src/xercesc/util/ValueArrayOf.c b/src/xercesc/util/ValueArrayOf.c index cf379fc68..30b5ec212 100644 --- a/src/xercesc/util/ValueArrayOf.c +++ b/src/xercesc/util/ValueArrayOf.c @@ -56,6 +56,9 @@ /** * $Log$ + * Revision 1.4 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.3 2003/05/15 19:07:46 knoaman * Partial implementation of the configurable memory manager. * @@ -95,23 +98,25 @@ XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- // ValueArrayOf: Contructors and Destructor // --------------------------------------------------------------------------- -template <class TElem> ValueArrayOf<TElem>:: -ValueArrayOf(const unsigned int size) : +template <class TElem> +ValueArrayOf<TElem>::ValueArrayOf(const unsigned int size, + MemoryManager* const manager) : fSize(size) , fArray(0) - , fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , fMemoryManager(manager) { fArray = (TElem*) fMemoryManager->allocate(fSize * sizeof(TElem)); //new TElem[fSize]; } template <class TElem> ValueArrayOf<TElem>::ValueArrayOf( const TElem* values - , const unsigned int size) : + , const unsigned int size + , MemoryManager* const manager) : fSize(size) , fArray(0) - , fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , fMemoryManager(manager) { fArray = (TElem*) fMemoryManager->allocate(fSize * sizeof(TElem)); //new TElem[fSize]; for (unsigned int index = 0; index < fSize; index++) @@ -123,7 +128,7 @@ ValueArrayOf<TElem>::ValueArrayOf(const ValueArrayOf<TElem>& source) : fSize(source.fSize) , fArray(0) - , fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , fMemoryManager(source.fMemoryManager) { fArray = (TElem*) fMemoryManager->allocate(fSize * sizeof(TElem)); //new TElem[fSize]; for (unsigned int index = 0; index < fSize; index++) diff --git a/src/xercesc/util/ValueArrayOf.hpp b/src/xercesc/util/ValueArrayOf.hpp index ae75fdd83..92a4910c2 100644 --- a/src/xercesc/util/ValueArrayOf.hpp +++ b/src/xercesc/util/ValueArrayOf.hpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.5 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.4 2003/05/15 19:07:46 knoaman * Partial implementation of the configurable memory manager. * @@ -105,8 +108,17 @@ public : // ----------------------------------------------------------------------- // Contructors and Destructor // ----------------------------------------------------------------------- - ValueArrayOf(const unsigned int size); - ValueArrayOf(const TElem* values, const unsigned int size); + ValueArrayOf + ( + const unsigned int size + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + ValueArrayOf + ( + const TElem* values + , const unsigned int size + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); ValueArrayOf(const ValueArrayOf<TElem>& source); ~ValueArrayOf(); diff --git a/src/xercesc/util/ValueHashTableOf.c b/src/xercesc/util/ValueHashTableOf.c index d6cd7520e..f69bbe339 100644 --- a/src/xercesc/util/ValueHashTableOf.c +++ b/src/xercesc/util/ValueHashTableOf.c @@ -56,6 +56,9 @@ /** * $Log$ + * Revision 1.6 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.5 2003/05/15 19:07:46 knoaman * Partial implementation of the configurable memory manager. * @@ -84,8 +87,9 @@ XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- template <class TVal> ValueHashTableOf<TVal>::ValueHashTableOf( const unsigned int modulus - , HashBase* hashBase) - : fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , HashBase* hashBase + , MemoryManager* const manager) + : fMemoryManager(manager) , fBucketList(0) , fHashModulus(modulus) , fHash(0) @@ -96,8 +100,9 @@ ValueHashTableOf<TVal>::ValueHashTableOf( const unsigned int modulus } template <class TVal> -ValueHashTableOf<TVal>::ValueHashTableOf(const unsigned int modulus) - : fMemoryManager(XMLPlatformUtils::fgMemoryManager) +ValueHashTableOf<TVal>::ValueHashTableOf( const unsigned int modulus + , MemoryManager* const manager) + : fMemoryManager(manager) , fBucketList(0) , fHashModulus(modulus) , fHash(0) diff --git a/src/xercesc/util/ValueHashTableOf.hpp b/src/xercesc/util/ValueHashTableOf.hpp index 7b3fc2f67..924f549eb 100644 --- a/src/xercesc/util/ValueHashTableOf.hpp +++ b/src/xercesc/util/ValueHashTableOf.hpp @@ -105,11 +105,20 @@ public: // Constructors and Destructor // ----------------------------------------------------------------------- // backwards compatability - default hasher is HashXMLCh - ValueHashTableOf(const unsigned int modulus); + ValueHashTableOf + ( + const unsigned int modulus + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); // if a hash function is passed in, it will be deleted when the hashtable is deleted. // use a new instance of the hasher class for each hashtable, otherwise one hashtable // may delete the hasher of a different hashtable if both use the same hasher. - ValueHashTableOf(const unsigned int modulus, HashBase* hashBase); + ValueHashTableOf + ( + const unsigned int modulus + , HashBase* hashBase + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); ~ValueHashTableOf(); diff --git a/src/xercesc/util/ValueStackOf.c b/src/xercesc/util/ValueStackOf.c index c469a989f..766125875 100644 --- a/src/xercesc/util/ValueStackOf.c +++ b/src/xercesc/util/ValueStackOf.c @@ -56,6 +56,9 @@ /** * $Log$ + * Revision 1.3 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.2 2002/11/04 15:22:05 tng * C++ Namespace Support. * @@ -92,10 +95,11 @@ XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- // ValueStackOf: Constructors and Destructor // --------------------------------------------------------------------------- -template <class TElem> ValueStackOf<TElem>:: -ValueStackOf(const unsigned int fInitCapacity) : +template <class TElem> +ValueStackOf<TElem>::ValueStackOf(const unsigned int fInitCapacity, + MemoryManager* const manager) : - fVector(fInitCapacity) + fVector(fInitCapacity, manager) { } diff --git a/src/xercesc/util/ValueStackOf.hpp b/src/xercesc/util/ValueStackOf.hpp index b2ee30c51..58cec23e0 100644 --- a/src/xercesc/util/ValueStackOf.hpp +++ b/src/xercesc/util/ValueStackOf.hpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.5 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.4 2003/05/15 19:07:46 knoaman * Partial implementation of the configurable memory manager. * @@ -108,7 +111,11 @@ public : // ----------------------------------------------------------------------- // Constructors and Destructor // ----------------------------------------------------------------------- - ValueStackOf(const unsigned int fInitCapacity); + ValueStackOf + ( + const unsigned int fInitCapacity + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); ~ValueStackOf(); diff --git a/src/xercesc/util/ValueVectorOf.c b/src/xercesc/util/ValueVectorOf.c index fcf1dc0cf..e2826267c 100644 --- a/src/xercesc/util/ValueVectorOf.c +++ b/src/xercesc/util/ValueVectorOf.c @@ -56,6 +56,9 @@ /** * $Log$ + * Revision 1.4 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.3 2003/05/15 19:07:46 knoaman * Partial implementation of the configurable memory manager. * @@ -101,12 +104,13 @@ XERCES_CPP_NAMESPACE_BEGIN // ValueVectorOf: Constructors and Destructor // --------------------------------------------------------------------------- template <class TElem> -ValueVectorOf<TElem>::ValueVectorOf(const unsigned int maxElems) : +ValueVectorOf<TElem>::ValueVectorOf(const unsigned int maxElems, + MemoryManager* const manager) : fCurCount(0) , fMaxCount(maxElems) , fElemList(0) - , fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , fMemoryManager(manager) { fElemList = (TElem*) fMemoryManager->allocate ( @@ -120,7 +124,7 @@ ValueVectorOf<TElem>::ValueVectorOf(const ValueVectorOf<TElem>& toCopy) : fCurCount(toCopy.fCurCount) , fMaxCount(toCopy.fMaxCount) , fElemList(0) - , fMemoryManager(XMLPlatformUtils::fgMemoryManager) + , fMemoryManager(toCopy.fMemoryManager) { fElemList = (TElem*) fMemoryManager->allocate ( diff --git a/src/xercesc/util/ValueVectorOf.hpp b/src/xercesc/util/ValueVectorOf.hpp index 0606a3839..bd57e81ed 100644 --- a/src/xercesc/util/ValueVectorOf.hpp +++ b/src/xercesc/util/ValueVectorOf.hpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.5 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.4 2003/05/15 19:07:46 knoaman * Partial implementation of the configurable memory manager. * @@ -110,7 +113,11 @@ public : // ----------------------------------------------------------------------- // Constructors and Destructor // ----------------------------------------------------------------------- - ValueVectorOf(const unsigned int maxElems); + ValueVectorOf + ( + const unsigned int maxElems + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); ValueVectorOf(const ValueVectorOf<TElem>& toCopy); ~ValueVectorOf(); diff --git a/src/xercesc/util/XMLAbstractDoubleFloat.cpp b/src/xercesc/util/XMLAbstractDoubleFloat.cpp index e96ab45e7..10f51a6bd 100644 --- a/src/xercesc/util/XMLAbstractDoubleFloat.cpp +++ b/src/xercesc/util/XMLAbstractDoubleFloat.cpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.13 2003/05/16 06:01:52 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.12 2003/05/15 19:07:46 knoaman * Partial implementation of the configurable memory manager. * @@ -123,14 +126,14 @@ static XMLCh value1[BUF_LEN+1]; // --------------------------------------------------------------------------- // ctor/dtor // --------------------------------------------------------------------------- -XMLAbstractDoubleFloat::XMLAbstractDoubleFloat() +XMLAbstractDoubleFloat::XMLAbstractDoubleFloat(MemoryManager* const manager) : fValue(0) , fType(Normal) , fDataConverted(false) , fSign(0) , fRawData(0) , fFormattedString(0) -, fMemoryManager(XMLPlatformUtils::fgMemoryManager) +, fMemoryManager(manager) { } diff --git a/src/xercesc/util/XMLAbstractDoubleFloat.hpp b/src/xercesc/util/XMLAbstractDoubleFloat.hpp index 2fcf00bb8..b9d1ae579 100644 --- a/src/xercesc/util/XMLAbstractDoubleFloat.hpp +++ b/src/xercesc/util/XMLAbstractDoubleFloat.hpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.12 2003/05/16 06:01:53 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.11 2003/05/15 19:07:46 knoaman * Partial implementation of the configurable memory manager. * @@ -178,7 +181,7 @@ protected: // // To be used by derived class exclusively // - XMLAbstractDoubleFloat(); + XMLAbstractDoubleFloat(MemoryManager* const manager); void init(const XMLCh* const strValue); diff --git a/src/xercesc/util/XMLBigDecimal.cpp b/src/xercesc/util/XMLBigDecimal.cpp index b769ca780..ca2308054 100644 --- a/src/xercesc/util/XMLBigDecimal.cpp +++ b/src/xercesc/util/XMLBigDecimal.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.9 2003/05/16 06:01:53 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.8 2003/05/15 19:07:46 knoaman * Partial implementation of the configurable memory manager. * @@ -134,13 +137,14 @@ XERCES_CPP_NAMESPACE_BEGIN // **/ -XMLBigDecimal::XMLBigDecimal(const XMLCh* const strValue) +XMLBigDecimal::XMLBigDecimal(const XMLCh* const strValue, + MemoryManager* const manager) : fSign(0) , fTotalDigits(0) , fScale(0) , fIntVal(0) , fRawData(0) -, fMemoryManager(XMLPlatformUtils::fgMemoryManager) +, fMemoryManager(manager) { if ((!strValue) || (!*strValue)) ThrowXML(NumberFormatException, XMLExcepts::XMLNUM_emptyString); diff --git a/src/xercesc/util/XMLBigDecimal.hpp b/src/xercesc/util/XMLBigDecimal.hpp index f7d225616..a4e63d121 100644 --- a/src/xercesc/util/XMLBigDecimal.hpp +++ b/src/xercesc/util/XMLBigDecimal.hpp @@ -81,7 +81,11 @@ public: * contain a parsable XMLBigDecimal. */ - XMLBigDecimal(const XMLCh* const strValue); + XMLBigDecimal + ( + const XMLCh* const strValue + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); ~XMLBigDecimal(); diff --git a/src/xercesc/util/XMLBigInteger.cpp b/src/xercesc/util/XMLBigInteger.cpp index fd8f57127..4cdfb753d 100644 --- a/src/xercesc/util/XMLBigInteger.cpp +++ b/src/xercesc/util/XMLBigInteger.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.5 2003/05/16 06:01:53 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.4 2003/05/15 19:07:46 knoaman * Partial implementation of the configurable memory manager. * @@ -213,11 +216,12 @@ void XMLBigInteger::parseBigInteger(const XMLCh* const toConvert * inclusive, will result in a NumberFormatException. */ -XMLBigInteger::XMLBigInteger(const XMLCh* const strValue) +XMLBigInteger::XMLBigInteger(const XMLCh* const strValue, + MemoryManager* const manager) : fSign(0) , fMagnitude(0) , fRawData(0) -, fMemoryManager(XMLPlatformUtils::fgMemoryManager) +, fMemoryManager(manager) { if (!strValue) ThrowXML(NumberFormatException, XMLExcepts::XMLNUM_emptyString); diff --git a/src/xercesc/util/XMLBigInteger.hpp b/src/xercesc/util/XMLBigInteger.hpp index 554e01233..dfa639cb1 100644 --- a/src/xercesc/util/XMLBigInteger.hpp +++ b/src/xercesc/util/XMLBigInteger.hpp @@ -81,8 +81,11 @@ public: * contain a parsable XMLBigInteger. */ - XMLBigInteger(const XMLCh* const strValue); - + XMLBigInteger + ( + const XMLCh* const strValue + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); ~XMLBigInteger(); XMLBigInteger(const XMLBigInteger& toCopy); diff --git a/src/xercesc/util/XMLDouble.cpp b/src/xercesc/util/XMLDouble.cpp index c56d0081a..e3b482099 100644 --- a/src/xercesc/util/XMLDouble.cpp +++ b/src/xercesc/util/XMLDouble.cpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.10 2003/05/16 06:01:53 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.9 2003/05/16 03:11:22 knoaman * Partial implementation of the configurable memory manager. * @@ -151,8 +154,9 @@ XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- // ctor/dtor // --------------------------------------------------------------------------- -XMLDouble::XMLDouble(const XMLCh* const strValue) -:XMLAbstractDoubleFloat() +XMLDouble::XMLDouble(const XMLCh* const strValue, + MemoryManager* const manager) +:XMLAbstractDoubleFloat(manager) { init(strValue); } diff --git a/src/xercesc/util/XMLDouble.hpp b/src/xercesc/util/XMLDouble.hpp index b4de11a05..9576c5992 100644 --- a/src/xercesc/util/XMLDouble.hpp +++ b/src/xercesc/util/XMLDouble.hpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.5 2003/05/16 06:01:53 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.4 2002/12/11 00:20:02 peiyongz * Doing businesss in value space. Converting out-of-bound value into special values. * @@ -122,7 +125,8 @@ public: * contain a parsable XMLDouble. */ - XMLDouble(const XMLCh* const strValue); + XMLDouble(const XMLCh* const strValue, + MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); ~XMLDouble(); diff --git a/src/xercesc/util/XMLFloat.cpp b/src/xercesc/util/XMLFloat.cpp index 472f94c84..2b9f25072 100644 --- a/src/xercesc/util/XMLFloat.cpp +++ b/src/xercesc/util/XMLFloat.cpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.11 2003/05/16 06:01:53 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.10 2003/05/16 03:11:22 knoaman * Partial implementation of the configurable memory manager. * @@ -146,8 +149,9 @@ XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- // ctor/dtor // --------------------------------------------------------------------------- -XMLFloat::XMLFloat(const XMLCh* const strValue) -:XMLAbstractDoubleFloat() +XMLFloat::XMLFloat(const XMLCh* const strValue, + MemoryManager* const manager) +:XMLAbstractDoubleFloat(manager) { init(strValue); } diff --git a/src/xercesc/util/XMLFloat.hpp b/src/xercesc/util/XMLFloat.hpp index 264f8a3a4..d77d49ea3 100644 --- a/src/xercesc/util/XMLFloat.hpp +++ b/src/xercesc/util/XMLFloat.hpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.5 2003/05/16 06:01:53 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.4 2002/12/11 00:20:02 peiyongz * Doing businesss in value space. Converting out-of-bound value into special values. * @@ -117,7 +120,8 @@ public: * contain a parsable XMLFloat. */ - XMLFloat(const XMLCh* const strValue); + XMLFloat(const XMLCh* const strValue, + MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); ~XMLFloat(); diff --git a/src/xercesc/util/XMLURL.cpp b/src/xercesc/util/XMLURL.cpp index f20a69d23..8daebda84 100644 --- a/src/xercesc/util/XMLURL.cpp +++ b/src/xercesc/util/XMLURL.cpp @@ -181,9 +181,9 @@ XMLURL::Protocols XMLURL::lookupByName(const XMLCh* const protoName) // --------------------------------------------------------------------------- // XMLURL: Constructors and Destructor // --------------------------------------------------------------------------- -XMLURL::XMLURL() : +XMLURL::XMLURL(MemoryManager* const manager) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) , fFragment(0) , fHost(0) , fPassword(0) @@ -198,9 +198,10 @@ XMLURL::XMLURL() : } XMLURL::XMLURL(const XMLCh* const baseURL - , const XMLCh* const relativeURL) : + , const XMLCh* const relativeURL + , MemoryManager* const manager) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) , fFragment(0) , fHost(0) , fPassword(0) @@ -223,10 +224,11 @@ XMLURL::XMLURL(const XMLCh* const baseURL } } -XMLURL::XMLURL(const XMLCh* const baseURL - , const char* const relativeURL) : +XMLURL::XMLURL(const XMLCh* const baseURL + , const char* const relativeURL + , MemoryManager* const manager) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) , fFragment(0) , fHost(0) , fPassword(0) @@ -254,7 +256,7 @@ XMLURL::XMLURL(const XMLCh* const baseURL XMLURL::XMLURL(const XMLURL& baseURL , const XMLCh* const relativeURL) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(baseURL.fMemoryManager) , fFragment(0) , fHost(0) , fPassword(0) @@ -280,7 +282,7 @@ XMLURL::XMLURL(const XMLURL& baseURL XMLURL::XMLURL(const XMLURL& baseURL , const char* const relativeURL) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(baseURL.fMemoryManager) , fFragment(0) , fHost(0) , fPassword(0) @@ -306,9 +308,10 @@ XMLURL::XMLURL(const XMLURL& baseURL } -XMLURL::XMLURL(const XMLCh* const urlText) : +XMLURL::XMLURL(const XMLCh* const urlText, + MemoryManager* const manager) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) , fFragment(0) , fHost(0) , fPassword(0) @@ -331,9 +334,10 @@ XMLURL::XMLURL(const XMLCh* const urlText) : } } -XMLURL::XMLURL(const char* const urlText) : +XMLURL::XMLURL(const char* const urlText, + MemoryManager* const manager) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) , fFragment(0) , fHost(0) , fPassword(0) @@ -360,7 +364,7 @@ XMLURL::XMLURL(const char* const urlText) : XMLURL::XMLURL(const XMLURL& toCopy) : - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(toCopy.fMemoryManager) , fFragment(0) , fHost(0) , fPassword(0) @@ -490,7 +494,7 @@ void XMLURL::setURL(const XMLCh* const baseURL { if (*baseURL) { - XMLURL basePart(baseURL); + XMLURL basePart(baseURL, fMemoryManager); if (!conglomerateWithBase(basePart, false)) { cleanup(); @@ -617,7 +621,7 @@ void XMLURL::makeRelativeTo(const XMLCh* const baseURLText) if (!isRelative()) return; - XMLURL baseURL(baseURLText); + XMLURL baseURL(baseURLText, fMemoryManager); conglomerateWithBase(baseURL); } diff --git a/src/xercesc/util/XMLURL.hpp b/src/xercesc/util/XMLURL.hpp index 90deaa223..9b0f2c97c 100644 --- a/src/xercesc/util/XMLURL.hpp +++ b/src/xercesc/util/XMLURL.hpp @@ -61,7 +61,7 @@ #if !defined(XMLURL_HPP) #define XMLURL_HPP -#include <xercesc/util/XMLException.hpp> +#include <xercesc/util/PlatformUtils.hpp> XERCES_CPP_NAMESPACE_BEGIN @@ -100,16 +100,18 @@ public: // ----------------------------------------------------------------------- // Constructors and Destructor // ----------------------------------------------------------------------- - XMLURL(); + XMLURL(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); XMLURL ( const XMLCh* const baseURL , const XMLCh* const relativeURL + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); XMLURL ( const XMLCh* const baseURL , const char* const relativeURL + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); XMLURL ( @@ -124,10 +126,12 @@ public: XMLURL ( const XMLCh* const urlText + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager ); XMLURL ( const char* const urlText + , MemoryManager* const manager ); XMLURL(const XMLURL& toCopy); virtual ~XMLURL(); diff --git a/src/xercesc/util/XMLUri.cpp b/src/xercesc/util/XMLUri.cpp index 4c84ac51a..e1cd0635e 100644 --- a/src/xercesc/util/XMLUri.cpp +++ b/src/xercesc/util/XMLUri.cpp @@ -241,7 +241,8 @@ static const XMLCh PATH_SEPARATORS[] = // XMLUri: Constructors and Helper methods // --------------------------------------------------------------------------- // ctor# 2 -XMLUri::XMLUri(const XMLCh* const uriSpec) +XMLUri::XMLUri(const XMLCh* const uriSpec, + MemoryManager* const manager) : fScheme(0) , fUserInfo(0) , fHost(0) @@ -250,7 +251,7 @@ XMLUri::XMLUri(const XMLCh* const uriSpec) , fQueryString(0) , fFragment(0) , fURIText(0) -, fMemoryManager(XMLPlatformUtils::fgMemoryManager) +, fMemoryManager(manager) { try { initialize((XMLUri *)0, uriSpec); @@ -264,7 +265,8 @@ XMLUri::XMLUri(const XMLCh* const uriSpec) // ctor# 7 relative ctor XMLUri::XMLUri(const XMLUri* const baseURI - , const XMLCh* const uriSpec) + , const XMLCh* const uriSpec + , MemoryManager* const manager) : fScheme(0) , fUserInfo(0) , fHost(0) @@ -273,7 +275,7 @@ XMLUri::XMLUri(const XMLUri* const baseURI , fQueryString(0) , fFragment(0) , fURIText(0) -, fMemoryManager(XMLPlatformUtils::fgMemoryManager) +, fMemoryManager(manager) { try { initialize(baseURI, uriSpec); @@ -295,7 +297,7 @@ XMLUri::XMLUri(const XMLUri& toCopy) , fQueryString(0) , fFragment(0) , fURIText(0) -, fMemoryManager(XMLPlatformUtils::fgMemoryManager) +, fMemoryManager(toCopy.fMemoryManager) { try { initialize(toCopy); diff --git a/src/xercesc/util/XMLUri.hpp b/src/xercesc/util/XMLUri.hpp index faa47a943..8a1cd1fb6 100644 --- a/src/xercesc/util/XMLUri.hpp +++ b/src/xercesc/util/XMLUri.hpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.9 2003/05/16 06:01:53 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.8 2003/05/15 19:07:46 knoaman * Partial implementation of the configurable memory manager. * @@ -143,7 +146,8 @@ public: * ctor# 2 * */ - XMLUri(const XMLCh* const uriSpec); + XMLUri(const XMLCh* const uriSpec, + MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); /** * Construct a new URI from a base URI and a URI specification string. @@ -157,8 +161,9 @@ public: * ctor# 7 relative ctor * */ - XMLUri(const XMLUri* const baseURI - , const XMLCh* const uriSpec); + XMLUri(const XMLUri* const baseURI + , const XMLCh* const uriSpec + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager); /** * Copy constructor diff --git a/src/xercesc/util/regx/RegularExpression.cpp b/src/xercesc/util/regx/RegularExpression.cpp index 86fb9b6e2..2f55bca05 100644 --- a/src/xercesc/util/regx/RegularExpression.cpp +++ b/src/xercesc/util/regx/RegularExpression.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.10 2003/05/16 06:01:57 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.9 2003/05/16 00:03:10 knoaman * Partial implementation of the configurable memory manager. * @@ -236,7 +239,8 @@ bool RegularExpression::Context::nextCh(XMLInt32& ch, int& offset, // --------------------------------------------------------------------------- // RegularExpression: Constructors and Destructors // --------------------------------------------------------------------------- -RegularExpression::RegularExpression(const char* const pattern) +RegularExpression::RegularExpression(const char* const pattern, + MemoryManager* const manager) :fHasBackReferences(false), fFixedStringOnly(false), fNoGroups(0), @@ -250,9 +254,9 @@ RegularExpression::RegularExpression(const char* const pattern) fOperations(0), fTokenTree(0), fFirstChar(0), - fOpFactory(XMLPlatformUtils::fgMemoryManager), + fOpFactory(manager), fTokenFactory(0), - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) { try { @@ -268,7 +272,8 @@ RegularExpression::RegularExpression(const char* const pattern) } RegularExpression::RegularExpression(const char* const pattern, - const char* const options) + const char* const options, + MemoryManager* const manager) :fHasBackReferences(false), fFixedStringOnly(false), fNoGroups(0), @@ -282,9 +287,9 @@ RegularExpression::RegularExpression(const char* const pattern, fOperations(0), fTokenTree(0), fFirstChar(0), - fOpFactory(XMLPlatformUtils::fgMemoryManager), + fOpFactory(manager), fTokenFactory(0), - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) { try { @@ -302,7 +307,8 @@ RegularExpression::RegularExpression(const char* const pattern, } -RegularExpression::RegularExpression(const XMLCh* const pattern) +RegularExpression::RegularExpression(const XMLCh* const pattern, + MemoryManager* const manager) :fHasBackReferences(false), fFixedStringOnly(false), fNoGroups(0), @@ -316,9 +322,9 @@ RegularExpression::RegularExpression(const XMLCh* const pattern) fOperations(0), fTokenTree(0), fFirstChar(0), - fOpFactory(XMLPlatformUtils::fgMemoryManager), + fOpFactory(manager), fTokenFactory(0), - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) { try { @@ -332,7 +338,8 @@ RegularExpression::RegularExpression(const XMLCh* const pattern) } RegularExpression::RegularExpression(const XMLCh* const pattern, - const XMLCh* const options) + const XMLCh* const options, + MemoryManager* const manager) :fHasBackReferences(false), fFixedStringOnly(false), fNoGroups(0), @@ -346,9 +353,9 @@ RegularExpression::RegularExpression(const XMLCh* const pattern, fOperations(0), fTokenTree(0), fFirstChar(0), - fOpFactory(XMLPlatformUtils::fgMemoryManager), + fOpFactory(manager), fTokenFactory(0), - fMemoryManager(XMLPlatformUtils::fgMemoryManager) + fMemoryManager(manager) { try { diff --git a/src/xercesc/util/regx/RegularExpression.hpp b/src/xercesc/util/regx/RegularExpression.hpp index 346c10e0e..381cbd186 100644 --- a/src/xercesc/util/regx/RegularExpression.hpp +++ b/src/xercesc/util/regx/RegularExpression.hpp @@ -89,10 +89,28 @@ public: // ----------------------------------------------------------------------- // Public Constructors and Destructor // ----------------------------------------------------------------------- - RegularExpression(const char* const pattern); - RegularExpression(const char* const pattern, const char* const options); - RegularExpression(const XMLCh* const pattern); - RegularExpression(const XMLCh* const pattern, const XMLCh* const options); + RegularExpression + ( + const char* const pattern + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + RegularExpression + ( + const char* const pattern + , const char* const options + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + RegularExpression + ( + const XMLCh* const pattern + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); + RegularExpression + ( + const XMLCh* const pattern + , const XMLCh* const options + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + ); ~RegularExpression(); // ----------------------------------------------------------------------- diff --git a/src/xercesc/validators/datatype/AbstractStringValidator.cpp b/src/xercesc/validators/datatype/AbstractStringValidator.cpp index 35b75f251..dd59333bc 100644 --- a/src/xercesc/validators/datatype/AbstractStringValidator.cpp +++ b/src/xercesc/validators/datatype/AbstractStringValidator.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.12 2003/05/16 06:01:57 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.11 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -646,7 +649,7 @@ void AbstractStringValidator::checkContent( const XMLCh* const content, bool asB // lazy construction if (getRegex() ==0) { try { - setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption)); + setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption, fMemoryManager)); } catch (XMLException &e) { diff --git a/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp b/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp index 8ec1e1219..ae242bd1e 100644 --- a/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp +++ b/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.5 2003/05/16 06:01:57 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.4 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -201,7 +204,7 @@ void AnyURIDatatypeValidator::checkValueSpace(const XMLCh* const content) try { if (!fTempURI) - fTempURI = new XMLUri(BASE_URI); + fTempURI = new XMLUri(BASE_URI, fMemoryManager); // Support for relative URLs // According to Java 1.1: URLs may also be specified with a @@ -209,7 +212,7 @@ void AnyURIDatatypeValidator::checkValueSpace(const XMLCh* const content) // if (XMLString::stringLen(content)) { - XMLUri newURI(fTempURI, content ); + XMLUri newURI(fTempURI, content, fMemoryManager); } } catch (...) diff --git a/src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp b/src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp index e207c1899..6686a9729 100644 --- a/src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp +++ b/src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.8 2003/05/16 06:01:57 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.7 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -184,7 +187,7 @@ void BooleanDatatypeValidator::checkContent( const XMLCh* const content, bool as // lazy construction if (getRegex() ==0) { try { - setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption)); + setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption, fMemoryManager)); } catch (XMLException &e) { diff --git a/src/xercesc/validators/datatype/DateTimeValidator.cpp b/src/xercesc/validators/datatype/DateTimeValidator.cpp index 0994dae09..bce5b6a2a 100644 --- a/src/xercesc/validators/datatype/DateTimeValidator.cpp +++ b/src/xercesc/validators/datatype/DateTimeValidator.cpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.6 2003/05/16 06:01:57 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.5 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -179,7 +182,7 @@ void DateTimeValidator::checkContent(const XMLCh* const content // lazy construction if (getRegex() ==0) { try { - setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption)); + setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption, fMemoryManager)); } catch (XMLException &e) { diff --git a/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp b/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp index 101b1be59..5447ddd73 100644 --- a/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp +++ b/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.10 2003/05/16 06:01:57 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.9 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -492,7 +495,7 @@ void DecimalDatatypeValidator::checkContent( const XMLCh* const content, bool as // lazy construction if (getRegex() ==0) { try { - setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption)); + setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption, fMemoryManager)); } catch (XMLException &e) { diff --git a/src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp b/src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp index c6011482d..d9cceb10c 100644 --- a/src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp +++ b/src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.5 2003/05/16 06:01:57 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.4 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -266,7 +269,7 @@ void DoubleDatatypeValidator::checkContent( const XMLCh* const content, bool asB // lazy construction if (getRegex() ==0) { try { - setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption)); + setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption, fMemoryManager)); } catch (XMLException &e) { diff --git a/src/xercesc/validators/datatype/FloatDatatypeValidator.cpp b/src/xercesc/validators/datatype/FloatDatatypeValidator.cpp index 263df44a9..c60f63cc6 100644 --- a/src/xercesc/validators/datatype/FloatDatatypeValidator.cpp +++ b/src/xercesc/validators/datatype/FloatDatatypeValidator.cpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.5 2003/05/16 06:01:57 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.4 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -267,7 +270,7 @@ void FloatDatatypeValidator::checkContent( const XMLCh* const content, bool asBa // lazy construction if (getRegex() ==0) { try { - setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption)); + setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption, fMemoryManager)); } catch (XMLException &e) { diff --git a/src/xercesc/validators/datatype/ListDatatypeValidator.cpp b/src/xercesc/validators/datatype/ListDatatypeValidator.cpp index 7fbef053a..bac2af2b2 100644 --- a/src/xercesc/validators/datatype/ListDatatypeValidator.cpp +++ b/src/xercesc/validators/datatype/ListDatatypeValidator.cpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.9 2003/05/16 06:01:57 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.8 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -239,7 +242,7 @@ void ListDatatypeValidator::checkContent( BaseRefVectorOf<XMLCh>* tokenVector if (getRegex() == 0) { try { - setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption)); + setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption, fMemoryManager)); } catch (XMLException &e) { diff --git a/src/xercesc/validators/datatype/NOTATIONDatatypeValidator.cpp b/src/xercesc/validators/datatype/NOTATIONDatatypeValidator.cpp index 92a00e9d8..df9937af9 100644 --- a/src/xercesc/validators/datatype/NOTATIONDatatypeValidator.cpp +++ b/src/xercesc/validators/datatype/NOTATIONDatatypeValidator.cpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.5 2003/05/16 06:01:57 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.4 2003/05/15 18:53:26 knoaman * Partial implementation of the configurable memory manager. * @@ -180,14 +183,17 @@ void NOTATIONDatatypeValidator::checkValueSpace(const XMLCh* const content) if (colonPosition > 0) { // Extract URI - XMLCh* uriPart = new XMLCh[colonPosition + 1]; - ArrayJanitor<XMLCh> jan1(uriPart); + XMLCh* uriPart = (XMLCh*) fMemoryManager->allocate + ( + (colonPosition + 1) * sizeof(XMLCh) + );//new XMLCh[colonPosition + 1]; + ArrayJanitor<XMLCh> jan1(uriPart, fMemoryManager); XMLString::subString(uriPart, content, 0, colonPosition); try { // no relative uri support here - XMLUri newURI(uriPart); + XMLUri newURI(uriPart, fMemoryManager); } catch (...) { @@ -198,8 +204,11 @@ void NOTATIONDatatypeValidator::checkValueSpace(const XMLCh* const content) } // Extract localpart - XMLCh* localPart = new XMLCh[contentLength - colonPosition]; - ArrayJanitor<XMLCh> jan2(localPart); + XMLCh* localPart = (XMLCh*) fMemoryManager->allocate + ( + (contentLength - colonPosition) * sizeof(XMLCh) + );//new XMLCh[contentLength - colonPosition]; + ArrayJanitor<XMLCh> jan2(localPart, fMemoryManager); XMLString::subString(localPart, content, colonPosition + 1, contentLength); if ( !XMLString::isValidNCName(localPart)) diff --git a/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp b/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp index b240388a1..498479d46 100644 --- a/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp +++ b/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.10 2003/05/16 06:01:57 knoaman + * Partial implementation of the configurable memory manager. + * * Revision 1.9 2003/05/15 18:53:27 knoaman * Partial implementation of the configurable memory manager. * @@ -344,7 +347,7 @@ void UnionDatatypeValidator::checkContent(const XMLCh* const content, bool asBas if (getRegex() == 0) { try { - setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption)); + setRegex(new (fMemoryManager) RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption, fMemoryManager)); } catch (XMLException &e) { -- GitLab