diff --git a/src/xercesc/dom/impl/DOMDocumentImpl.cpp b/src/xercesc/dom/impl/DOMDocumentImpl.cpp index f792dab9f95fce1378f0d33bc7b096c2830b6fa5..1551a838fe2dc45d29b0d01063a3acdb67648ca9 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 9455027e664e5d0c913ef5cc89f06fc81044027b..7c37f4c00e2777adca467c53d456d8c6a5527bb1 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 73819947dc82ff0281305d0612708237fe667814..af44c83a729d0476723ec97b9ceaf3557a428574 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 10fe6b0e826adcadac671e2f2b93f90fa0a513b4..7cd46d6914e4b051e072917a8ced684a7ed42ac5 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 e4ac69b687715c68a458509c6b7ca89c8b3cec64..ee63cd197a48a1a4cfdece26a00e9a3bc689103a 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 50bd4747a992c35a07e9ce81609a4b5609521e13..06bb4f0610d9dfc86cb32ce8c0193474b3198e95 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 70c4dd0de3cc46020017f6bd0294fde395cc4b36..a41ff62d30314437038d815fac1c2c6361bbfa22 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 21209776733cd0bb4d4627e84f35e07a2a088866..429fb999935b927fcec39614fd156025b6d96a6c 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 22bb08dd0f6e54efb7b0b11de24e145bb4af6f65..d470ac61883bebb619ff1d3d9f318f1d6bc45133 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 81c7952fd6566ae23f1c1c4d8019c4cda4c44a14..63bd471ca3507580e909883a51de1c161aaf8fdd 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 441e98738174a1aa63dd10b8f80c8846d7dbf167..03d5e05eaa5a7752e81c70489d0aef649bd8a0dd 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 e8b467cd799e1b5189a803d7a5a9137cff51f3f6..352184bf79870905c5e3b510654413e09f37c4c7 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 27646d082e219486ba33c0bc80b2a419c25ada3a..1bd159d7fe3486aea5aced5198505a3f2cd03a7e 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 329725fed3d7c11a9f7424f1b0ecb42a9498e655..81393faf577fdf75fb267d9c2d3a86d02b8aaa3b 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 9324466301e7b21f93570850d1e2f0e5e23e6eba..665c9dae12a63b66c76ef5286f0c8ab5c87df284 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 85d4af10b0f8152d7f33e9617f4ad03618055a8d..fd33b77edccbe2d28fb7e7f3b53103b5435ec3b4 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 c1d1d9bf4b6c7f6e8dae1de094e28a58547a83fd..bb7665d69d877552dc7cfb37ae943cb08e61e278 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 8d597e4720657dcaf0b1b9d4b6ef857a0e295f75..b39d53649e1dd44c93aa8d3f36f53b268b21a303 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 cbe69d8d822aebd6175157692b1d0141a560c23d..e259d37f60794024df81e34a29746993a3c5cb54 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 ec0377f3fb0e44023c77e2fa5f2c741a1664eea4..7e31f49ce760e959737eed05f8630e54af79a66a 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 4c2416ab8a156fb5bcaf59a585052a36cad848d6..ad66ce6b563bdd4d2e6c81c36f27995df42f0bcf 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 0f23307400dd49f1041c6d18291c3189f5667fa0..28b23faec58fbfa87796b16c715bd6a11044a9dc 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 72837b05dc52c431661441becdd18e1173384235..2a3a1d49b21594c109ba330c4a2665259343f85d 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 5e8716ef1a439fffb2667931e59c00d58a0d55dc..10f5ad05162f9d4ecf16a3a7a3b8ad58536e6a3a 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 dd7ead5519b15dca962b569cc8e9fcfc4fb820cf..e3d1bf2bab807177a60041a098beac335d2abad0 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 10f8aec1941608a688a417b9c0331d27ef949eb2..d16ef9eb32cc72dd284da7fd18663c2a3acf708b 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 25f6768160565f99bbae9e4b2045b5c76cf0e99f..a2f2213c09c932ebdf6186f535e63fc76a28dae4 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 2cfe842c4c1b58a9fa0d15fcd6ef218e5189d94d..2ef155dc112f07c4e0a845d2e7d56db9e287cc2a 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 3d3e3dee086cb2ff342f77778505ff2b0cb4dee7..3989fec5736224a1b800e499ed7eaa542929332f 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 376eed2582f2195888d17f9477cf73ff32428832..e395692dfebfb1ce4a3f631bd1a3b5fa51a21af3 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 8d82ba3befc6ec1ad5ff0eb2d74ef8ec12dc5ced..ca6b8bda1695c4e3e48e3cf74b2d5f82bd37e211 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 bc40178da3041a4e8acf13e85f30d0982dc56352..9f9b1248f71613af7274043b90d680a3c3368e6c 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 ab73a9bd7d7483d9bc88ff486c194293b1759536..3a997adc61bd851caa23975d46f60c4106c7f103 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 cf379fc68742c158fe97e9f60f6d1667af3a1e9c..30b5ec2128621792627fdbf285b125c6bb40933e 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 ae75fdd83e908b0fc59d9eecd02c3dd387e70bce..92a4910c21ca99622a4f02af9dce76184d56e64a 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 d6cd7520ed156bdecba13b2a89834ed7dd50879b..f69bbe339b0bc906f665d7bf3b29ac90f86ee371 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 7b3fc2f67539b24c5da7cbb081ecfd2e98dda8af..924f549eb98badd3ff05667d58fdfc811fc043fe 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 c469a989f4c987a5d7325abbcf2c011412cf7911..7661258751ce2acce81ae3da58913bc2c9281979 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 b2ee30c51930dc7b382a811100d130808b4f74dc..58cec23e08adee06eaa6a3e2586af9cc6e948c1a 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 fcf1dc0cf011385a02c9023b7460dbc4dbc99d9f..e2826267c70d6403c537210e34ae935bd92ff174 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 0606a3839f7c64d9ae8e50245978debaf7dc23b7..bd57e81edb049e8f18626e9a5aced2afd5b1cc30 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 e96ab45e7bdb3b6bdfeb80759bbb5b9f70aeef07..10f51a6bd955b07cf724f1857008ec6155c0f3b5 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 2fcf00bb80110bca48dd429a5abb6bb892cc1af5..b9d1ae5799c4b3314efbf7623ce1ead5d25b3f18 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 b769ca780aefdfcef010ca5b19f14c98216018c6..ca230805451da0e3c9c5fcc5d6ab9d4fa62cdb27 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 f7d2256169c38bacbb894252b045a7035066ba0a..a4e63d121bef8506863d78aba761497983aa7f71 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 fd8f57127f8ed3954f7a336899ec98fd67610656..4cdfb753d983bb2e1e844f0e8e815a7eae0ed0ed 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 554e01233c42e91c86f9bcdb6fcac06dac36640e..dfa639cb12c75cc021bcabf83fb3bde55fe50d26 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 c56d0081a44a170b91b093e5638dbda0574d903a..e3b482099f7350bfd358b67021e86e09209baaeb 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 b4de11a05f2eba0322b56f4b9f874112031b1eff..9576c59928231c47d2d0a22099c9ef7403631bb0 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 472f94c8475e53932967eb4560c9fc425fef9e9d..2b9f2507281158a5cadf9ce800784561f32b7da7 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 264f8a3a4db63003b9bed7d72f08cca111c6fc9f..d77d49ea3b744f8385fa9242df109566685190a1 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 f20a69d232f114fff4974543d77be9c43b903a0a..8daebda84446862c12959928bbead3b31d9b12a4 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 90deaa2237892cad53bf75ede1aac576f3dfc9ec..9b0f2c97ce8c4d7ae5c4d77e7d6afc2d30058b68 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 4c84ac51a9d08b7616053501cce32c622b439923..e1cd0635e9d9db2a66b559fb5e68f73d87e22ed3 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 faa47a943e9b0b9f063d8f518c936b7de4cde786..8a1cd1fb64d1828d970232996737d2a210d2f778 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 86fb9b6e2fe49d0c7e716bbb793eecd41e88dd2c..2f55bca05e4e199068d31e391088bc9e52f63dc6 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 346c10e0ee530e6b8e0a7b25b7ce06c67c7ea7bc..381cbd186d1a4d227c3d09bf1af4c6a71d4193a9 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 35b75f251a37f41c3cf87d567e0906460919469e..dd59333bcf4467c22050b872a7cd76956efb2cf8 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 8ec1e12194618863faf03c573ee81e951573c91c..ae242bd1ed8ae1fb8bf42254c6886ce276acd917 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 e207c18997cfc7d8b45a7203faa0105e0d14e88f..6686a97296a743fb65c219803189fcd483d0d3b5 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 0994dae0914f37a1d4a1e43720f22f678d7f96cd..bce5b6a2ae770205a125979c287ade94fe4a91cd 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 101b1be5908f814353adba7b0bbc878bb52466ae..5447ddd73635340d3bc8edcd79c1dc2efefb5e75 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 c6011482d6c352781d0e277f52de388d6ce6e1e0..d9cceb10c8ca17597a86907c0c2994876157257c 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 263df44a99858752e22f2a22f5ebcfdfd0fcf227..c60f63cc674d054e3fe73beeb26ca705b0d62d10 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 7fbef053ac3d7868c9d3b3d9343d3a5a6ac0d59a..bac2af2b2f77314970a04f3e2399cc88d63ad5c7 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 92a00e9d8b9270c7e44dc4b03de9c2c47ab602a7..df9937af9a00e0e0f233de16f926449ac5aa723c 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 b240388a191b421a8222b9adcebb731f6b2b2b77..498479d469a81ae2a4d41c583f00fc5f1f1ffb6b 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) {