You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by kn...@apache.org on 2003/05/18 16:02:09 UTC

cvs commit: xml-xerces/c/src/xercesc/validators/schema/identity FieldValueMap.cpp FieldValueMap.hpp IdentityConstraint.hpp ValueStore.cpp ValueStoreCache.cpp XPathMatcher.cpp XPathMatcherStack.cpp XercesXPath.cpp XercesXPath.hpp

knoaman     2003/05/18 07:02:09

  Modified:    c/src/xercesc/dom/deprecated DOMParser.cpp DocumentImpl.cpp
                        DocumentImpl.hpp RangeImpl.cpp
               c/src/xercesc/dom/impl DOMDocumentImpl.cpp
                        DOMImplementationImpl.cpp DOMNormalizer.cpp
                        DOMNormalizer.hpp DOMRangeImpl.cpp
                        DOMWriterImpl.cpp
               c/src/xercesc/framework XMLAttr.cpp XMLElementDecl.cpp
               c/src/xercesc/internal DGXMLScanner.cpp ElemStack.cpp
                        IGXMLScanner.cpp IGXMLScanner2.cpp ReaderMgr.cpp
                        SGXMLScanner.cpp WFXMLScanner.cpp XMLScanner.cpp
               c/src/xercesc/parsers AbstractDOMParser.cpp
                        SAX2XMLReaderImpl.cpp SAXParser.cpp
               c/src/xercesc/util KVStringPair.hpp PlatformUtils.cpp
                        RefHash2KeysTableOf.c RefHash2KeysTableOf.hpp
                        RefHashTableOf.c RefHashTableOf.hpp StringPool.cpp
                        XMLAbstractDoubleFloat.hpp XMLDateTime.cpp
                        XMLDateTime.hpp XMLString.cpp XMLString.hpp
                        XMLStringTokenizer.cpp XMLURL.hpp
               c/src/xercesc/util/regx Op.cpp OpFactory.cpp
                        RangeTokenMap.cpp RegularExpression.cpp
                        RegxParser.cpp TokenFactory.cpp UnionToken.cpp
                        XMLRangeFactory.cpp
               c/src/xercesc/validators/DTD DTDElementDecl.cpp
                        DTDGrammar.cpp DTDScanner.cpp
               c/src/xercesc/validators/common AllContentModel.cpp
                        CMLeaf.hpp ContentSpecNode.cpp ContentSpecNode.hpp
                        DFAContentModel.cpp GrammarResolver.cpp
                        MixedContentModel.cpp SimpleContentModel.hpp
               c/src/xercesc/validators/datatype
                        AnyURIDatatypeValidator.cpp
                        DatatypeValidatorFactory.cpp
                        DateDatatypeValidator.cpp
                        DateTimeDatatypeValidator.cpp DateTimeValidator.cpp
                        DayDatatypeValidator.cpp
                        DecimalDatatypeValidator.cpp
                        DoubleDatatypeValidator.cpp
                        DurationDatatypeValidator.cpp
                        FloatDatatypeValidator.cpp
                        MonthDatatypeValidator.cpp
                        MonthDayDatatypeValidator.cpp
                        TimeDatatypeValidator.cpp YearDatatypeValidator.cpp
                        YearMonthDatatypeValidator.cpp
               c/src/xercesc/validators/schema ComplexTypeInfo.cpp
                        ComplexTypeInfo.hpp NamespaceScope.cpp
                        SchemaAttDef.cpp SchemaAttDef.hpp
                        SchemaAttDefList.cpp SchemaElementDecl.cpp
                        SchemaElementDecl.hpp SchemaGrammar.cpp
                        SchemaValidator.cpp SchemaValidator.hpp
                        TraverseSchema.cpp XercesAttGroupInfo.hpp
                        XercesGroupInfo.cpp
               c/src/xercesc/validators/schema/identity FieldValueMap.cpp
                        FieldValueMap.hpp IdentityConstraint.hpp
                        ValueStore.cpp ValueStoreCache.cpp XPathMatcher.cpp
                        XPathMatcherStack.cpp XercesXPath.cpp
                        XercesXPath.hpp
  Log:
  Memory manager implementation: pass per instance manager.
  
  Revision  Changes    Path
  1.17      +3 -3      xml-xerces/c/src/xercesc/dom/deprecated/DOMParser.cpp
  
  Index: DOMParser.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/deprecated/DOMParser.cpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- DOMParser.cpp	16 May 2003 21:36:54 -0000	1.16
  +++ DOMParser.cpp	18 May 2003 14:02:03 -0000	1.17
  @@ -141,7 +141,7 @@
   {
       // Create grammar resolver and URI string pool to pass to the scanner
       fGrammarResolver = new (fMemoryManager) GrammarResolver(fMemoryManager);
  -    fURIStringPool = new (fMemoryManager) XMLStringPool();
  +    fURIStringPool = new (fMemoryManager) XMLStringPool(109, fMemoryManager);
   
       //  Create a scanner and tell it what validator to use. Then set us
       //  as the document event handler so we can fill the DOM document.
  @@ -151,7 +151,7 @@
       fScanner->setGrammarResolver(fGrammarResolver);
       fScanner->setURIStringPool(fURIStringPool);
   
  -    fNodeStack = new (fMemoryManager) ValueStackOf<DOM_Node>(64);
  +    fNodeStack = new (fMemoryManager) ValueStackOf<DOM_Node>(64, fMemoryManager);
       this->reset();
   }
   
  
  
  
  1.7       +22 -9     xml-xerces/c/src/xercesc/dom/deprecated/DocumentImpl.cpp
  
  Index: DocumentImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/deprecated/DocumentImpl.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DocumentImpl.cpp	15 May 2003 18:25:53 -0000	1.6
  +++ DocumentImpl.cpp	18 May 2003 14:02:03 -0000	1.7
  @@ -355,14 +355,18 @@
   };
   
   
  -NodeIteratorImpl* DocumentImpl::createNodeIterator (DOM_Node root, unsigned long whatToShow, DOM_NodeFilter* filter, bool entityReferenceExpansion)
  +NodeIteratorImpl* DocumentImpl::createNodeIterator (DOM_Node root,
  +                                                    unsigned long whatToShow,
  +                                                    DOM_NodeFilter* filter,
  +                                                    bool entityReferenceExpansion,
  +                                                    MemoryManager* const manager)
   {
   		// Create the node iterator implementation object.
   		//	Add it to the vector of iterators that must be synchronized when a node is deleted.
   		//	The vector of iterators is kept in the "owner document" if there is one. If there isn't one, I assume that root is the
   		//	owner document.
   
  -    NodeIteratorImpl* iter = new (XMLPlatformUtils::fgMemoryManager) NodeIteratorImpl(root, whatToShow, filter, entityReferenceExpansion);
  +    NodeIteratorImpl* iter = new (manager) NodeIteratorImpl(root, whatToShow, filter, entityReferenceExpansion);
       DOM_Document doc = root.getOwnerDocument();
       DocumentImpl* impl;
   
  @@ -373,7 +377,7 @@
           impl = (DocumentImpl *) root.fImpl;
   
       if (impl->iterators == 0L) {
  -        impl->iterators = new (XMLPlatformUtils::fgMemoryManager) NodeIterators(1, false);
  +        impl->iterators = new (manager) NodeIterators(1, false, manager);
           impl->iterators->addElement(iter);
       }
   
  @@ -381,11 +385,14 @@
   }
   
   
  -TreeWalkerImpl* DocumentImpl::createTreeWalker (DOM_Node root, unsigned long whatToShow, DOM_NodeFilter* filter, bool entityReferenceExpansion)
  +TreeWalkerImpl* DocumentImpl::createTreeWalker (DOM_Node root, unsigned long whatToShow,
  +                                                DOM_NodeFilter* filter,
  +                                                bool entityReferenceExpansion,
  +                                                MemoryManager* const manager)
   {
   		// See notes for createNodeIterator...
   
  -    TreeWalkerImpl* twi = new (XMLPlatformUtils::fgMemoryManager) TreeWalkerImpl(root, whatToShow, filter, entityReferenceExpansion);
  +    TreeWalkerImpl* twi = new (manager) TreeWalkerImpl(root, whatToShow, filter, entityReferenceExpansion);
       DOM_Document doc = root.getOwnerDocument();
       DocumentImpl* impl;
   
  @@ -396,7 +403,7 @@
           impl = (DocumentImpl *) root.fImpl;
   
       if (impl->treeWalkers == 0L) {
  -        impl->treeWalkers = new (XMLPlatformUtils::fgMemoryManager) TreeWalkers(1, false);
  +        impl->treeWalkers = new (manager) TreeWalkers(1, false, manager);
           impl->treeWalkers->addElement(twi);
       }
   
  @@ -735,7 +742,7 @@
       RangeImpl* range = new (fMemoryManager) RangeImpl(DOM_Document(this));
   
       if (ranges == 0L) {
  -        ranges = new (fMemoryManager) RangeImpls(1, false);
  +        ranges = new (fMemoryManager) RangeImpls(1, false, fMemoryManager);
       }
       ranges->addElement(range);
       return range;
  @@ -812,7 +819,13 @@
   void DocumentImpl::setUserData(NodeImpl* n, void* data)
   {
   	if (!userData && data)
  -		userData = new (fMemoryManager) RefHashTableOf<void>(29, false, new (fMemoryManager) HashPtr());
  +		userData = new (fMemoryManager) RefHashTableOf<void>
  +        (
  +            29
  +            , false
  +            , new (fMemoryManager) HashPtr()
  +            , fMemoryManager
  +        );
   	if (!data && userData)
   		userData->removeKey((void*)n);
   	else
  
  
  
  1.6       +5 -3      xml-xerces/c/src/xercesc/dom/deprecated/DocumentImpl.hpp
  
  Index: DocumentImpl.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/deprecated/DocumentImpl.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DocumentImpl.hpp	15 May 2003 18:25:53 -0000	1.5
  +++ DocumentImpl.hpp	18 May 2003 14:02:03 -0000	1.6
  @@ -207,8 +207,10 @@
       virtual void                referenced();
       virtual NodeImpl            *removeChild(NodeImpl *oldChild);
       virtual void                unreferenced();
  -    static  NodeIteratorImpl*   createNodeIterator(DOM_Node root, unsigned long whatToShow, DOM_NodeFilter* filter, bool entityReferenceExpansion);
  -    static  TreeWalkerImpl*     createTreeWalker(DOM_Node root, unsigned long whatToShow, DOM_NodeFilter* filter, bool entityReferenceExpansion);
  +    static  NodeIteratorImpl*   createNodeIterator(DOM_Node root, unsigned long whatToShow, DOM_NodeFilter* filter, bool entityReferenceExpansion,
  +                                                   MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
  +    static  TreeWalkerImpl*     createTreeWalker(DOM_Node root, unsigned long whatToShow, DOM_NodeFilter* filter, bool entityReferenceExpansion,
  +                                                 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
       virtual XMLDeclImpl*        createXMLDecl(const DOMString& version, const DOMString& encoding, const DOMString& standalone);
       virtual void*				getUserData();
       virtual void				setUserData(void* value);
  
  
  
  1.4       +3 -3      xml-xerces/c/src/xercesc/dom/deprecated/RangeImpl.cpp
  
  Index: RangeImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/deprecated/RangeImpl.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- RangeImpl.cpp	4 Nov 2002 15:04:44 -0000	1.3
  +++ RangeImpl.cpp	18 May 2003 14:02:03 -0000	1.4
  @@ -897,14 +897,14 @@
           return pointA;
   
       typedef RefVectorOf<NodeImpl> VectorNodes;
  -    VectorNodes* startV= new VectorNodes(1, false);
  +    VectorNodes* startV= new (((DocumentImpl*)fDocument.fImpl)->getMemoryManager()) VectorNodes(1, false, ((DocumentImpl*)fDocument.fImpl)->getMemoryManager());
       DOM_Node node;
   
       for (node=fStartContainer; node != null; node=node.getParentNode())
       {
           startV->addElement(node.fImpl);
       }
  -    VectorNodes* endV = new VectorNodes(1, false);
  +    VectorNodes* endV = new (((DocumentImpl*)fDocument.fImpl)->getMemoryManager()) VectorNodes(1, false, ((DocumentImpl*)fDocument.fImpl)->getMemoryManager());
       for (node=fEndContainer; node != null; node=node.getParentNode())
       {
           endV->addElement(node.fImpl);
  
  
  
  1.38      +14 -8     xml-xerces/c/src/xercesc/dom/impl/DOMDocumentImpl.cpp
  
  Index: DOMDocumentImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMDocumentImpl.cpp,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- DOMDocumentImpl.cpp	16 May 2003 06:01:50 -0000	1.37
  +++ DOMDocumentImpl.cpp	18 May 2003 14:02:03 -0000	1.38
  @@ -409,7 +409,7 @@
   
       if (fNodeIterators == 0L) {
           //fNodeIterators = new (this) NodeIterators(1, false);
  -        fNodeIterators = new NodeIterators(1, false);
  +        fNodeIterators = new (fMemoryManager) NodeIterators(1, false, fMemoryManager);
       }
       fNodeIterators->addElement(nodeIterator);
   
  @@ -650,7 +650,7 @@
   
       if (fRanges == 0L) {
           //fRanges = new (this) Ranges(1, false);
  -        fRanges = new (fMemoryManager) Ranges(1, false); // XMemory
  +        fRanges = new (fMemoryManager) Ranges(1, false, fMemoryManager); // XMemory
       }
       fRanges->addElement(range);
       return range;
  @@ -991,7 +991,7 @@
   void DOMDocumentImpl::normalizeDocument() {
   
       if(!fNormalizer) 
  -        fNormalizer = new DOMNormalizer();
  +        fNormalizer = new (fMemoryManager) DOMNormalizer();
   
       fNormalizer->normalizeDocument(this);
   }
  @@ -1177,7 +1177,13 @@
       if (!fUserDataTable) {
           // create the table on heap so that it can be cleaned in destructor
           //fUserDataTable = new (this) RefHashTableOf<DOMNodeUserDataTable>(29, true, new HashPtr());
  -        fUserDataTable = new (fMemoryManager) RefHashTableOf<DOMNodeUserDataTable>(29, true, new HashPtr());
  +        fUserDataTable = new (fMemoryManager) RefHashTableOf<DOMNodeUserDataTable>
  +        (
  +            29
  +            , true
  +            , new HashPtr()
  +            , fMemoryManager
  +        );
       }
       else {
           node_userDataTable = fUserDataTable->get((void*)n);
  @@ -1198,7 +1204,7 @@
           // create the DOMNodeUserDataTable if not exists
           // create on the heap and adopted by the hashtable which will delete it upon removal.
           if (!node_userDataTable) {
  -            node_userDataTable  = new (fMemoryManager) RefHashTableOf<DOMUserDataRecord>(29, true);
  +            node_userDataTable  = new (fMemoryManager) RefHashTableOf<DOMUserDataRecord>(29, true, fMemoryManager);
               fUserDataTable->put(n, node_userDataTable);
           }
   
  @@ -1332,7 +1338,7 @@
           fRecycleNodePtr = new (fMemoryManager) RefArrayOf<DOMNodePtr> (15, fMemoryManager);
   
       if (!fRecycleNodePtr->operator[](type))
  -        fRecycleNodePtr->operator[](type) = new (fMemoryManager) RefStackOf<DOMNode> (15, false);
  +        fRecycleNodePtr->operator[](type) = new (fMemoryManager) RefStackOf<DOMNode> (15, false, fMemoryManager);
   
       fRecycleNodePtr->operator[](type)->push(object);
   }
  @@ -1340,7 +1346,7 @@
   void DOMDocumentImpl::releaseBuffer(DOMBuffer* buffer)
   {
       if (!fRecycleBufferPtr)
  -        fRecycleBufferPtr = new (fMemoryManager) RefStackOf<DOMBuffer> (15, false);
  +        fRecycleBufferPtr = new (fMemoryManager) RefStackOf<DOMBuffer> (15, false, fMemoryManager);
   
       fRecycleBufferPtr->push(buffer);
   }
  
  
  
  1.17      +2 -2      xml-xerces/c/src/xercesc/dom/impl/DOMImplementationImpl.cpp
  
  Index: DOMImplementationImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMImplementationImpl.cpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- DOMImplementationImpl.cpp	15 May 2003 18:25:54 -0000	1.16
  +++ DOMImplementationImpl.cpp	18 May 2003 14:02:03 -0000	1.17
  @@ -311,7 +311,7 @@
   {
       DOMImplementation* impl = DOMImplementation::getImplementation();
   
  -    XMLStringTokenizer tokenizer(features);
  +    XMLStringTokenizer tokenizer(features, XMLPlatformUtils::fgMemoryManager);
       const XMLCh* feature = 0;
   
       while (feature || tokenizer.hasMoreTokens()) {
  
  
  
  1.4       +2 -2      xml-xerces/c/src/xercesc/dom/impl/DOMNormalizer.cpp
  
  Index: DOMNormalizer.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMNormalizer.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DOMNormalizer.cpp	16 May 2003 21:36:55 -0000	1.3
  +++ DOMNormalizer.cpp	18 May 2003 14:02:03 -0000	1.4
  @@ -499,8 +499,8 @@
   void DOMNormalizer::InScopeNamespaces::Scope::addOrChangeBinding(const XMLCh *prefix, const XMLCh *uri) {
       //initialize and copy forward now we need to
       if(!fUriHash) {
  -        fPrefixHash = new RefHashTableOf<XMLCh>(10, false);
  -        fUriHash = new RefHashTableOf<XMLCh>(10, false);
  +        fPrefixHash = new RefHashTableOf<XMLCh>(10, (bool) false);
  +        fUriHash = new RefHashTableOf<XMLCh>(10, (bool) false);
           
           if(fBaseScopeWithBindings) {
               RefHashTableOfEnumerator<XMLCh> preEnumer(fBaseScopeWithBindings->fPrefixHash);
  
  
  
  1.3       +1 -1      xml-xerces/c/src/xercesc/dom/impl/DOMNormalizer.hpp
  
  Index: DOMNormalizer.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMNormalizer.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DOMNormalizer.hpp	16 May 2003 21:36:55 -0000	1.2
  +++ DOMNormalizer.hpp	18 May 2003 14:02:03 -0000	1.3
  @@ -82,7 +82,7 @@
   class DOMAttr;
   class DOMNamedNodeMap;
   
  -class DOMNormalizer {
  +class DOMNormalizer : public XMemory {
   
       //the following are the data structures maintain the stack of namespace information 
       class InScopeNamespaces {
  
  
  
  1.14      +3 -3      xml-xerces/c/src/xercesc/dom/impl/DOMRangeImpl.cpp
  
  Index: DOMRangeImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMRangeImpl.cpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- DOMRangeImpl.cpp	16 May 2003 21:36:55 -0000	1.13
  +++ DOMRangeImpl.cpp	18 May 2003 14:02:03 -0000	1.14
  @@ -1087,14 +1087,14 @@
           return pointA;
   
       typedef RefVectorOf<DOMNode> VectorNodes;
  -    VectorNodes startV(1, false);
  +    VectorNodes startV(1, false, ((DOMDocumentImpl *)fDocument)->getMemoryManager());
       DOMNode* node;
   
       for (node=(DOMNode*)pointA; node != 0; node=node->getParentNode())
       {
           startV.addElement(node);
       }
  -    VectorNodes endV(1, false);
  +    VectorNodes endV(1, false, ((DOMDocumentImpl *)fDocument)->getMemoryManager());
       for (node=(DOMNode*)pointB; node != 0; node=node->getParentNode())
       {
           endV.addElement(node);
  
  
  
  1.39      +6 -3      xml-xerces/c/src/xercesc/dom/impl/DOMWriterImpl.cpp
  
  Index: DOMWriterImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMWriterImpl.cpp,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- DOMWriterImpl.cpp	16 May 2003 21:36:55 -0000	1.38
  +++ DOMWriterImpl.cpp	18 May 2003 14:02:03 -0000	1.39
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.39  2003/05/18 14:02:03  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.38  2003/05/16 21:36:55  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -477,7 +480,7 @@
   ,fNamespaceStack(0)
   ,fMemoryManager(manager)
   {
  -    fNamespaceStack=new (fMemoryManager) RefVectorOf< RefHashTableOf<XMLCh> >(0,true);
  +    fNamespaceStack=new (fMemoryManager) RefVectorOf< RefHashTableOf<XMLCh> >(0,true, fMemoryManager);
   
       //
       // set features to default setting
  @@ -917,7 +920,7 @@
               int nodeLine = fCurrentLine;
   
               // add an entry in the namespace stack
  -            RefHashTableOf<XMLCh>* namespaceMap=new (fMemoryManager) RefHashTableOf<XMLCh>(12,false);
  +            RefHashTableOf<XMLCh>* namespaceMap=new (fMemoryManager) RefHashTableOf<XMLCh>(12, false, fMemoryManager);
               fNamespaceStack->addElement(namespaceMap);
   
               if ( filterAction == DOMNodeFilter::FILTER_ACCEPT)
  
  
  
  1.5       +4 -4      xml-xerces/c/src/xercesc/framework/XMLAttr.cpp
  
  Index: XMLAttr.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/XMLAttr.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XMLAttr.cpp	15 May 2003 18:26:07 -0000	1.4
  +++ XMLAttr.cpp	18 May 2003 14:02:04 -0000	1.5
  @@ -79,7 +79,7 @@
       , fAttName(0)
       , fMemoryManager(manager)
   {
  -    fAttName = new (fMemoryManager) QName();
  +    fAttName = new (fMemoryManager) QName(fMemoryManager);
   }
   
   XMLAttr::XMLAttr(   const   unsigned int        uriId
  @@ -103,7 +103,7 @@
           //  Just call the local setters to set up everything. Too much
           //  work is required to replicate that functionality here.
           //
  -        fAttName = new (fMemoryManager) QName(attrPrefix, attrName, uriId);
  +        fAttName = new (fMemoryManager) QName(attrPrefix, attrName, uriId, fMemoryManager);
           setValue(attrValue);
       }
       catch(...)
  @@ -130,7 +130,7 @@
       {
           //  Just call the local setters to set up everything. Too much
           //  work is required to replicate that functionality here.
  -        fAttName = new (fMemoryManager) QName(rawName, uriId);
  +        fAttName = new (fMemoryManager) QName(rawName, uriId, fMemoryManager);
           setValue(attrValue);
       }
       catch(...)
  
  
  
  1.6       +3 -3      xml-xerces/c/src/xercesc/framework/XMLElementDecl.cpp
  
  Index: XMLElementDecl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/XMLElementDecl.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XMLElementDecl.cpp	15 May 2003 18:26:07 -0000	1.5
  +++ XMLElementDecl.cpp	18 May 2003 14:02:04 -0000	1.6
  @@ -100,7 +100,7 @@
       if (fElementName)
           fElementName->setName(prefix, localPart, uriId);
       else
  -        fElementName = new (fMemoryManager) QName(prefix, localPart, uriId);
  +        fElementName = new (fMemoryManager) QName(prefix, localPart, uriId, fMemoryManager);
   }
   
   void
  @@ -110,7 +110,7 @@
       if (fElementName)
           fElementName->setName(rawName, uriId);
       else
  -        fElementName = new (fMemoryManager) QName(rawName, uriId);
  +        fElementName = new (fMemoryManager) QName(rawName, uriId, fMemoryManager);
   }
   
   void
  
  
  
  1.14      +2 -2      xml-xerces/c/src/xercesc/internal/DGXMLScanner.cpp
  
  Index: DGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/DGXMLScanner.cpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- DGXMLScanner.cpp	16 May 2003 21:36:57 -0000	1.13
  +++ DGXMLScanner.cpp	18 May 2003 14:02:04 -0000	1.14
  @@ -1788,7 +1788,7 @@
   
       //  And we need one for the raw attribute scan. This just stores key/
       //  value string pairs (prior to any processing.)
  -    fAttrNSList = new (fMemoryManager) ValueVectorOf<XMLAttr*>(8);
  +    fAttrNSList = new (fMemoryManager) ValueVectorOf<XMLAttr*>(8, fMemoryManager);
   
       //  Create the Validator and init them
       fDTDValidator = new (fMemoryManager) DTDValidator();
  
  
  
  1.7       +5 -0      xml-xerces/c/src/xercesc/internal/ElemStack.cpp
  
  Index: ElemStack.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/ElemStack.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ElemStack.cpp	16 May 2003 21:36:57 -0000	1.6
  +++ ElemStack.cpp	18 May 2003 14:02:04 -0000	1.7
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.7  2003/05/18 14:02:04  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.6  2003/05/16 21:36:57  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -153,6 +156,7 @@
   
       fEmptyNamespaceId(0)
       , fGlobalPoolId(0)
  +    , fPrefixPool(109, manager)
       , fStack(0)
       , fStackCapacity(32)
       , fStackTop(0)
  @@ -571,6 +575,7 @@
       , fMapCapacity(0)
       , fMap(0)
       , fStack(0)
  +    , fPrefixPool(109, manager)
       , fMemoryManager(manager)
   {
       // Do an initial allocation of the stack and zero it out
  
  
  
  1.13      +3 -3      xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp
  
  Index: IGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- IGXMLScanner.cpp	16 May 2003 21:36:57 -0000	1.12
  +++ IGXMLScanner.cpp	18 May 2003 14:02:04 -0000	1.13
  @@ -501,7 +501,7 @@
   
       //  And we need one for the raw attribute scan. This just stores key/
       //  value string pairs (prior to any processing.)
  -    fRawAttrList = new (fMemoryManager) RefVectorOf<KVStringPair>(32);
  +    fRawAttrList = new (fMemoryManager) RefVectorOf<KVStringPair>(32, true, fMemoryManager);
   
       //  Create the Validator and init them
       fDTDValidator = new (fMemoryManager) DTDValidator();
  @@ -2083,7 +2083,7 @@
       //if schema, check if we should lax or skip the validation of this element
       bool parentValidation = fValidate;
       if (cv) {
  -        QName element(fPrefixBuf.getRawBuffer(), &qnameRawBuf[prefixColonPos + 1], uriId);
  +        QName element(fPrefixBuf.getRawBuffer(), &qnameRawBuf[prefixColonPos + 1], uriId, fMemoryManager);
           // elementDepth will be > 0, as cv is only constructed if element is not
           // root.
           laxThisOne = laxElementValidation(&element, cv, cm, elemDepth - 1);
  
  
  
  1.20      +2 -2      xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp
  
  Index: IGXMLScanner2.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- IGXMLScanner2.cpp	16 May 2003 21:36:57 -0000	1.19
  +++ IGXMLScanner2.cpp	18 May 2003 14:02:04 -0000	1.20
  @@ -1225,7 +1225,7 @@
           XMLBufBid bbXsi(&fBufMgr);
           XMLBuffer& fXsiType = bbXsi.getBuffer();
   
  -        QName attName;
  +        QName attName(fMemoryManager);
   
           for (index = 0; index < attCount; index++)
           {
  
  
  
  1.15      +3 -3      xml-xerces/c/src/xercesc/internal/ReaderMgr.cpp
  
  Index: ReaderMgr.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/ReaderMgr.cpp,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- ReaderMgr.cpp	16 May 2003 21:36:57 -0000	1.14
  +++ ReaderMgr.cpp	18 May 2003 14:02:04 -0000	1.15
  @@ -900,11 +900,11 @@
       //  tell it it does own its elements.
       //
       if (!fReaderStack)
  -        fReaderStack = new (fMemoryManager) RefStackOf<XMLReader>(16, true);
  +        fReaderStack = new (fMemoryManager) RefStackOf<XMLReader>(16, true, fMemoryManager);
   
       // And the entity stack, which does not own its elements
       if (!fEntityStack)
  -        fEntityStack = new (fMemoryManager) RefStackOf<XMLEntityDecl>(16, false);
  +        fEntityStack = new (fMemoryManager) RefStackOf<XMLEntityDecl>(16, false, fMemoryManager);
   
       //
       //  Push the current reader and entity onto their respective stacks.
  
  
  
  1.26      +5 -5      xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp
  
  Index: SGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- SGXMLScanner.cpp	16 May 2003 21:36:57 -0000	1.25
  +++ SGXMLScanner.cpp	18 May 2003 14:02:04 -0000	1.26
  @@ -1174,7 +1174,7 @@
       //if schema, check if we should lax or skip the validation of this element
       bool parentValidation = fValidate;
       if (cv) {
  -        QName element(fPrefixBuf.getRawBuffer(), &qnameRawBuf[prefixColonPos + 1], uriId);
  +        QName element(fPrefixBuf.getRawBuffer(), &qnameRawBuf[prefixColonPos + 1], uriId, fMemoryManager);
           // elementDepth will be > 0, as cv is only constructed if element is not
           // root.
           laxThisOne = laxElementValidation(&element, cv, cm, elemDepth - 1);
  @@ -1873,7 +1873,7 @@
   
       //  And we need one for the raw attribute scan. This just stores key/
       //  value string pairs (prior to any processing.)
  -    fRawAttrList = new (fMemoryManager) RefVectorOf<KVStringPair>(32);
  +    fRawAttrList = new (fMemoryManager) RefVectorOf<KVStringPair>(32, true, fMemoryManager);
   
       // Create dummy schema grammar
       fSchemaGrammar = new (fMemoryManager) SchemaGrammar(fMemoryManager);
  @@ -1890,7 +1890,7 @@
   
       //  Add the default entity entries for the character refs that must always
       //  be present.
  -    fEntityTable = new (fMemoryManager) ValueHashTableOf<XMLCh>(11);
  +    fEntityTable = new (fMemoryManager) ValueHashTableOf<XMLCh>(11, fMemoryManager);
       fEntityTable->put((void*) XMLUni::fgAmp, chAmpersand);
       fEntityTable->put((void*) XMLUni::fgLT, chOpenAngle);
       fEntityTable->put((void*) XMLUni::fgGT, chCloseAngle);
  @@ -2992,7 +2992,7 @@
           XMLBufBid bbXsi(&fBufMgr);
           XMLBuffer& fXsiType = bbXsi.getBuffer();
   
  -        QName attName;
  +        QName attName(fMemoryManager);
   
           for (index = 0; index < attCount; index++)
           {
  
  
  
  1.12      +6 -6      xml-xerces/c/src/xercesc/internal/WFXMLScanner.cpp
  
  Index: WFXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/WFXMLScanner.cpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- WFXMLScanner.cpp	16 May 2003 21:36:57 -0000	1.11
  +++ WFXMLScanner.cpp	18 May 2003 14:02:04 -0000	1.12
  @@ -439,11 +439,11 @@
   //  it redundantly in multiple constructors.
   void WFXMLScanner::commonInit()
   {
  -    fEntityTable = new (fMemoryManager) ValueHashTableOf<XMLCh>(11);
  -    fAttrNameHashList = new (fMemoryManager)ValueVectorOf<unsigned int>(16);
  -    fAttrNSList = new (fMemoryManager) ValueVectorOf<XMLAttr*>(8);
  -    fElements = new (fMemoryManager) RefVectorOf<XMLElementDecl>(32);
  -    fElementLookup = new (fMemoryManager) RefHashTableOf<XMLElementDecl>(109, false);
  +    fEntityTable = new (fMemoryManager) ValueHashTableOf<XMLCh>(11, fMemoryManager);
  +    fAttrNameHashList = new (fMemoryManager)ValueVectorOf<unsigned int>(16, fMemoryManager);
  +    fAttrNSList = new (fMemoryManager) ValueVectorOf<XMLAttr*>(8, fMemoryManager);
  +    fElements = new (fMemoryManager) RefVectorOf<XMLElementDecl>(32, true, fMemoryManager);
  +    fElementLookup = new (fMemoryManager) RefHashTableOf<XMLElementDecl>(109, false, fMemoryManager);
   
       //  Add the default entity entries for the character refs that must always
       //  be present.
  
  
  
  1.45      +3 -3      xml-xerces/c/src/xercesc/internal/XMLScanner.cpp
  
  Index: XMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLScanner.cpp,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- XMLScanner.cpp	16 May 2003 21:36:58 -0000	1.44
  +++ XMLScanner.cpp	18 May 2003 14:02:04 -0000	1.45
  @@ -702,11 +702,11 @@
       //  Create the attribute list, which is used to store attribute values
       //  during start tag processing. Give it a reasonable initial size that
       //  will serve for most folks, though it will grow as required.
  -    fAttrList = new (fMemoryManager) RefVectorOf<XMLAttr>(32);
  +    fAttrList = new (fMemoryManager) RefVectorOf<XMLAttr>(32, true, fMemoryManager);
   
       //  Create the id ref list. This is used to enforce XML 1.0 ID ref
       //  semantics, i.e. all id refs must refer to elements that exist
  -    fIDRefList = new (fMemoryManager) RefHashTableOf<XMLRefInfo>(109);
  +    fIDRefList = new (fMemoryManager) RefHashTableOf<XMLRefInfo>(109, fMemoryManager);
   
       //  Create the GrammarResolver
       //fGrammarResolver = new GrammarResolver();
  
  
  
  1.42      +8 -5      xml-xerces/c/src/xercesc/parsers/AbstractDOMParser.cpp
  
  Index: AbstractDOMParser.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/AbstractDOMParser.cpp,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- AbstractDOMParser.cpp	16 May 2003 06:01:52 -0000	1.41
  +++ AbstractDOMParser.cpp	18 May 2003 14:02:05 -0000	1.42
  @@ -150,7 +150,7 @@
   {
       //  Create grammar resolver and string pool to pass to the scanner
       fGrammarResolver = new (fMemoryManager) GrammarResolver(fMemoryManager);
  -    fURIStringPool = new (fMemoryManager) XMLStringPool;
  +    fURIStringPool = new (fMemoryManager) XMLStringPool(109, fMemoryManager);
   
       //  Create a scanner and tell it what validator to use. Then set us
       //  as the document event handler so we can fill the DOM document.
  @@ -190,7 +190,7 @@
       if (fDocument && !fDocumentAdoptedByUser) {
           if (!fDocumentVector) {
               // allocate the vector if not exists yet
  -            fDocumentVector  = new (fMemoryManager) RefVectorOf<DOMDocumentImpl>(10, true) ;
  +            fDocumentVector  = new (fMemoryManager) RefVectorOf<DOMDocumentImpl>(10, true, fMemoryManager) ;
           }
           fDocumentVector->addElement(fDocument);
       }
  @@ -1334,7 +1334,10 @@
                           XMLCh temp[1000];
   
                           if (index > 999)
  -                            prefix = new XMLCh[index+1];
  +                            prefix = (XMLCh*) fMemoryManager->allocate
  +                            (
  +                                (index + 1) * sizeof(XMLCh)
  +                            );//new XMLCh[index+1];
                           else
                               prefix = temp;
   
  @@ -1346,7 +1349,7 @@
                               buf.append(XMLUni::fgXMLURIName);
   
                           if (index > 999)
  -                            delete prefix;
  +                            fMemoryManager->deallocate(prefix);//delete [] prefix;
                       }
                       else {
                           //   No prefix
  
  
  
  1.21      +6 -3      xml-xerces/c/src/xercesc/parsers/SAX2XMLReaderImpl.cpp
  
  Index: SAX2XMLReaderImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/SAX2XMLReaderImpl.cpp,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- SAX2XMLReaderImpl.cpp	16 May 2003 21:36:59 -0000	1.20
  +++ SAX2XMLReaderImpl.cpp	18 May 2003 14:02:05 -0000	1.21
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.21  2003/05/18 14:02:05  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.20  2003/05/16 21:36:59  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -339,7 +342,7 @@
   {
       // Create grammar resolver and string pool that we pass to the scanner
       fGrammarResolver = new (fMemoryManager) GrammarResolver(fMemoryManager);
  -    fURIStringPool = new (fMemoryManager) XMLStringPool();
  +    fURIStringPool = new (fMemoryManager) XMLStringPool(109, fMemoryManager);
   
       //  Create a scanner and tell it what validator to use. Then set us
       //  as the document event handler so we can fill the DOM document.
  @@ -360,8 +363,8 @@
   	// default: schema is on
   	setDoSchema(true);
   	
  -	fPrefixes    = new (fMemoryManager) RefStackOf<XMLBuffer> (10, false) ;
  -	fTempAttrVec  = new (fMemoryManager) RefVectorOf<XMLAttr>  (10, false) ;
  +	fPrefixes    = new (fMemoryManager) RefStackOf<XMLBuffer> (10, false, fMemoryManager) ;
  +	fTempAttrVec  = new (fMemoryManager) RefVectorOf<XMLAttr>  (10, false, fMemoryManager) ;
   	fPrefixCounts = new (fMemoryManager) ValueStackOf<unsigned int>(10, fMemoryManager) ;
   }
   
  
  
  
  1.19      +4 -1      xml-xerces/c/src/xercesc/parsers/SAXParser.cpp
  
  Index: SAXParser.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/SAXParser.cpp,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- SAXParser.cpp	16 May 2003 21:36:59 -0000	1.18
  +++ SAXParser.cpp	18 May 2003 14:02:05 -0000	1.19
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.19  2003/05/18 14:02:05  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.18  2003/05/16 21:36:59  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -291,7 +294,7 @@
   {
       // Create grammar resolver and string pool to pass to scanner
       fGrammarResolver = new (fMemoryManager) GrammarResolver(fMemoryManager);
  -    fURIStringPool = new (fMemoryManager) XMLStringPool();
  +    fURIStringPool = new (fMemoryManager) XMLStringPool(109, fMemoryManager);
   
       // Create our scanner and tell it what validator to use
       fScanner = XMLScannerResolver::getDefaultScanner(fValidator,fMemoryManager);
  
  
  
  1.5       +4 -1      xml-xerces/c/src/xercesc/util/KVStringPair.hpp
  
  Index: KVStringPair.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/KVStringPair.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- KVStringPair.hpp	16 May 2003 06:01:52 -0000	1.4
  +++ KVStringPair.hpp	18 May 2003 14:02:05 -0000	1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:05  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/16 06:01:52  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -138,7 +141,7 @@
       // -----------------------------------------------------------------------
       //  Constructors and Destructor
       // -----------------------------------------------------------------------
  -    KVStringPair(MemoryManager* const manager);
  +    KVStringPair(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
       KVStringPair
       (
           const XMLCh* const key
  
  
  
  1.10      +4 -1      xml-xerces/c/src/xercesc/util/PlatformUtils.cpp
  
  Index: PlatformUtils.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/PlatformUtils.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- PlatformUtils.cpp	30 Apr 2003 16:54:38 -0000	1.9
  +++ PlatformUtils.cpp	18 May 2003 14:02:05 -0000	1.10
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.10  2003/05/18 14:02:05  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.9  2003/04/30 16:54:38  knoaman
    * Initialize xerces with a default memory manager if none is provided.
    *
  @@ -306,7 +309,7 @@
       XMLLCPTranscoder* defXCode = XMLPlatformUtils::fgTransService->makeNewLCPTranscoder();
       if (!defXCode)
           panic(PanicHandler::Panic_NoDefTranscoder);
  -    XMLString::initString(defXCode);
  +    XMLString::initString(defXCode, fgMemoryManager);
   
       //
       //  Now lets ask the per-platform code to give us an instance of the type
  
  
  
  1.4       +15 -9     xml-xerces/c/src/xercesc/util/RefHash2KeysTableOf.c
  
  Index: RefHash2KeysTableOf.c
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHash2KeysTableOf.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- RefHash2KeysTableOf.c	15 May 2003 19:04:35 -0000	1.3
  +++ RefHash2KeysTableOf.c	18 May 2003 14:02:05 -0000	1.4
  @@ -56,6 +56,9 @@
   
   /**
    * $Log$
  + * Revision 1.4  2003/05/18 14:02:05  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.3  2003/05/15 19:04:35  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -98,9 +101,10 @@
   //  RefHash2KeysTableOf: Constructors and Destructor
   // ---------------------------------------------------------------------------
   template <class TVal>
  -RefHash2KeysTableOf<TVal>::RefHash2KeysTableOf( const unsigned int modulus
  -                                              , const bool         adoptElems)
  -    : fMemoryManager(XMLPlatformUtils::fgMemoryManager)
  +RefHash2KeysTableOf<TVal>::RefHash2KeysTableOf( const unsigned int   modulus
  +                                              , const bool           adoptElems
  +                                              , MemoryManager* const manager)
  +    : fMemoryManager(manager)
   	, fAdoptedElems(adoptElems)
       , fBucketList(0)
       , fHashModulus(modulus)
  @@ -113,10 +117,11 @@
   }
   
   template <class TVal>
  -RefHash2KeysTableOf<TVal>::RefHash2KeysTableOf( const unsigned int modulus
  -                                              , const bool         adoptElems
  -                                              , HashBase*          hashBase)
  -	: fMemoryManager(XMLPlatformUtils::fgMemoryManager)
  +RefHash2KeysTableOf<TVal>::RefHash2KeysTableOf( const unsigned int   modulus
  +                                              , const bool           adoptElems
  +                                              , HashBase*            hashBase
  +                                              , MemoryManager* const manager)
  +	: fMemoryManager(manager)
       , fAdoptedElems(adoptElems)
       , fBucketList(0)
       , fHashModulus(modulus)
  @@ -128,8 +133,9 @@
   }
   
   template <class TVal>
  -RefHash2KeysTableOf<TVal>::RefHash2KeysTableOf(const unsigned int modulus)
  -	: fMemoryManager(XMLPlatformUtils::fgMemoryManager)
  +RefHash2KeysTableOf<TVal>::RefHash2KeysTableOf(const unsigned int modulus,
  +                                               MemoryManager* const manager)
  +	: fMemoryManager(manager)
       , fAdoptedElems(true)
       , fBucketList(0)
       , fHashModulus(modulus)
  
  
  
  1.5       +21 -3     xml-xerces/c/src/xercesc/util/RefHash2KeysTableOf.hpp
  
  Index: RefHash2KeysTableOf.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHash2KeysTableOf.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- RefHash2KeysTableOf.hpp	15 May 2003 19:04:35 -0000	1.4
  +++ RefHash2KeysTableOf.hpp	18 May 2003 14:02:05 -0000	1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:05  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/15 19:04:35  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -137,13 +140,28 @@
       //  Constructors and Destructor
       // -----------------------------------------------------------------------
   	// backwards compatability - default hasher is HashXMLCh
  -    RefHash2KeysTableOf(const unsigned int modulus);
  +    RefHash2KeysTableOf
  +    (
  +        const unsigned int modulus
  +		, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
  +    );
   	// backwards compatability - default hasher is HashXMLCh
  -    RefHash2KeysTableOf(const unsigned int modulus, const bool adoptElems);
  +    RefHash2KeysTableOf
  +    (
  +        const unsigned int modulus
  +        , const bool adoptElems
  +        , 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.
  -    RefHash2KeysTableOf(const unsigned int modulus, const bool adoptElems, HashBase* hashBase);
  +    RefHash2KeysTableOf
  +    (
  +        const unsigned int modulus
  +        , const bool adoptElems
  +        , HashBase* hashBase
  +        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
  +    );
       ~RefHash2KeysTableOf();
   
   
  
  
  
  1.10      +12 -6     xml-xerces/c/src/xercesc/util/RefHashTableOf.c
  
  Index: RefHashTableOf.c
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHashTableOf.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- RefHashTableOf.c	16 May 2003 21:36:59 -0000	1.9
  +++ RefHashTableOf.c	18 May 2003 14:02:05 -0000	1.10
  @@ -56,6 +56,9 @@
   
   /**
    * $Log$
  + * Revision 1.10  2003/05/18 14:02:05  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.9  2003/05/16 21:36:59  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -140,9 +143,10 @@
   // ---------------------------------------------------------------------------
   template <class TVal>
   RefHashTableOf<TVal>::RefHashTableOf( const unsigned int modulus
  -                                    , const bool adoptElems)
  +                                    , const bool adoptElems
  +                                    , MemoryManager* const manager)
   
  -    : fMemoryManager(XMLPlatformUtils::fgMemoryManager)
  +    : fMemoryManager(manager)
       , fAdoptedElems(adoptElems)
       , fBucketList(0)
       , fHashModulus(modulus)
  @@ -159,9 +163,10 @@
   template <class TVal>
   RefHashTableOf<TVal>::RefHashTableOf( const unsigned int modulus
                                       , const bool adoptElems
  -                                    , HashBase* hashBase)
  +                                    , HashBase* hashBase
  +                                    , MemoryManager* const manager)
   
  -    : fMemoryManager(XMLPlatformUtils::fgMemoryManager)
  +    : fMemoryManager(manager)
       , fAdoptedElems(adoptElems)
       , fBucketList(0)
       , fHashModulus(modulus)
  @@ -175,9 +180,10 @@
   }
   
   template <class TVal>
  -RefHashTableOf<TVal>::RefHashTableOf(const unsigned int modulus)
  +RefHashTableOf<TVal>::RefHashTableOf(const unsigned int modulus
  +                                     , MemoryManager* const manager)
   
  -    : fMemoryManager(XMLPlatformUtils::fgMemoryManager)
  +    : fMemoryManager(manager)
       , fAdoptedElems(true)
       , fBucketList(0)
       , fHashModulus(modulus)
  
  
  
  1.10      +21 -3     xml-xerces/c/src/xercesc/util/RefHashTableOf.hpp
  
  Index: RefHashTableOf.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHashTableOf.hpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- RefHashTableOf.hpp	16 May 2003 21:36:59 -0000	1.9
  +++ RefHashTableOf.hpp	18 May 2003 14:02:05 -0000	1.10
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.10  2003/05/18 14:02:05  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.9  2003/05/16 21:36:59  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -172,13 +175,28 @@
       //  Constructors and Destructor
       // -----------------------------------------------------------------------
   	// backwards compatability - default hasher is HashXMLCh
  -    RefHashTableOf(const unsigned int modulus);
  +    RefHashTableOf
  +    (
  +        const unsigned int modulus
  +        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
  +    );
   	// backwards compatability - default hasher is HashXMLCh
  -    RefHashTableOf(const unsigned int modulus, const bool adoptElems);
  +    RefHashTableOf
  +    (
  +        const unsigned int modulus
  +        , const bool adoptElems
  +        , 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.
  -    RefHashTableOf(const unsigned int modulus, const bool adoptElems, HashBase* hashBase);
  +    RefHashTableOf
  +    (
  +        const unsigned int modulus
  +        , const bool adoptElems
  +        , HashBase* hashBase
  +        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
  +    );
       ~RefHashTableOf();
   
   
  
  
  
  1.5       +4 -1      xml-xerces/c/src/xercesc/util/StringPool.cpp
  
  Index: StringPool.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/StringPool.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- StringPool.cpp	16 May 2003 06:01:52 -0000	1.4
  +++ StringPool.cpp	18 May 2003 14:02:05 -0000	1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:05  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/16 06:01:52  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -147,7 +150,7 @@
       , fCurId(1)
   {
       // Create the hash table, passing it the modulus
  -    fHashTable = new (fMemoryManager) RefHashTableOf<PoolElem>(modulus);
  +    fHashTable = new (fMemoryManager) RefHashTableOf<PoolElem>(modulus, fMemoryManager);
   
       // Do an initial allocation of the id map and zero it all out
       fIdMap = (PoolElem**) fMemoryManager->allocate
  
  
  
  1.13      +5 -2      xml-xerces/c/src/xercesc/util/XMLAbstractDoubleFloat.hpp
  
  Index: XMLAbstractDoubleFloat.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLAbstractDoubleFloat.hpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- XMLAbstractDoubleFloat.hpp	16 May 2003 06:01:53 -0000	1.12
  +++ XMLAbstractDoubleFloat.hpp	18 May 2003 14:02:05 -0000	1.13
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.13  2003/05/18 14:02:05  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.12  2003/05/16 06:01:53  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -181,7 +184,7 @@
       //
       // To be used by derived class exclusively
       //
  -    XMLAbstractDoubleFloat(MemoryManager* const manager);
  +    XMLAbstractDoubleFloat(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
   
       void                  init(const XMLCh* const strValue);
   
  
  
  
  1.11      +11 -7     xml-xerces/c/src/xercesc/util/XMLDateTime.cpp
  
  Index: XMLDateTime.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLDateTime.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- XMLDateTime.cpp	15 May 2003 19:07:46 -0000	1.10
  +++ XMLDateTime.cpp	18 May 2003 14:02:05 -0000	1.11
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.11  2003/05/18 14:02:05  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.10  2003/05/15 19:07:46  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -256,8 +259,8 @@
           return EQUAL;
   
       //long comparison algorithm is required
  -    XMLDateTime tempA, *pTempA = &tempA;
  -    XMLDateTime tempB, *pTempB = &tempB;
  +    XMLDateTime tempA(XMLPlatformUtils::fgMemoryManager), *pTempA = &tempA;
  +    XMLDateTime tempB(XMLPlatformUtils::fgMemoryManager), *pTempB = &tempB;
   
       addDuration(pTempA, pDate1, 0);
       addDuration(pTempB, pDate2, 0);
  @@ -473,16 +476,17 @@
           fMemoryManager->deallocate(fBuffer);//delete[] fBuffer;
   }
   
  -XMLDateTime::XMLDateTime()
  +XMLDateTime::XMLDateTime(MemoryManager* const manager)
   : fBuffer(0)
  -, fMemoryManager(XMLPlatformUtils::fgMemoryManager)
  +, fMemoryManager(manager)
   {
       reset();
   }
   
  -XMLDateTime::XMLDateTime(const XMLCh* const aString)
  +XMLDateTime::XMLDateTime(const XMLCh* const aString,
  +                         MemoryManager* const manager)
   : fBuffer(0)
  -, fMemoryManager(XMLPlatformUtils::fgMemoryManager)
  +, fMemoryManager(manager)
   {
       setBuffer(aString);
   }
  
  
  
  1.8       +7 -5      xml-xerces/c/src/xercesc/util/XMLDateTime.hpp
  
  Index: XMLDateTime.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLDateTime.hpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- XMLDateTime.hpp	15 May 2003 19:07:46 -0000	1.7
  +++ XMLDateTime.hpp	18 May 2003 14:02:05 -0000	1.8
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.8  2003/05/18 14:02:05  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.7  2003/05/15 19:07:46  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -132,10 +135,9 @@
       // ctors and dtor
       // -----------------------------------------------------------------------
   
  -    XMLDateTime();
  -
  -    XMLDateTime(const XMLCh* const);
  -
  +    XMLDateTime(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
  +    XMLDateTime(const XMLCh* const,
  +                MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
       ~XMLDateTime();
   
       inline void           setBuffer(const XMLCh* const);
  
  
  
  1.23      +32 -12    xml-xerces/c/src/xercesc/util/XMLString.cpp
  
  Index: XMLString.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLString.cpp,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- XMLString.cpp	15 May 2003 19:07:46 -0000	1.22
  +++ XMLString.cpp	18 May 2003 14:02:05 -0000	1.23
  @@ -75,7 +75,6 @@
   #include <xercesc/util/RuntimeException.hpp>
   #include <xercesc/util/TransService.hpp>
   #include <xercesc/util/TranscodingException.hpp>
  -#include <xercesc/util/ValueArrayOf.hpp>
   #include <xercesc/util/XMLString.hpp>
   #include <xercesc/util/XMLUniDefs.hpp>
   #include <xercesc/util/XMLUni.hpp>
  @@ -97,6 +96,8 @@
       chOpenCurly, chLatin_n, chLatin_u, chLatin_l, chLatin_l, chCloseCurly, chNull
   };
   
  +MemoryManager* XMLString::fgMemoryManager = 0;
  +
   
   // ---------------------------------------------------------------------------
   //  XMLString: Public static methods
  @@ -1419,8 +1420,8 @@
   
   BaseRefVectorOf<XMLCh>* XMLString::tokenizeString(const XMLCh* const tokenizeSrc)
   {
  -    XMLCh* orgText = replicate(tokenizeSrc);
  -    ArrayJanitor<XMLCh> janText(orgText);
  +    XMLCh* orgText = replicate(tokenizeSrc, fgMemoryManager);
  +    ArrayJanitor<XMLCh> janText(orgText, fgMemoryManager);
       XMLCh* tokenizeStr = orgText;
   
       RefArrayVectorOf<XMLCh>* tokenStack = new RefArrayVectorOf<XMLCh>(16, true);
  @@ -1451,7 +1452,10 @@
   
           // these tokens are adopted in the RefVector and will be deleted
           // when the vector is deleted by the caller
  -        XMLCh* token = new XMLCh[skip+1-index];
  +        XMLCh* token = (XMLCh*) fgMemoryManager->allocate
  +        (
  +            (skip+1-index) * sizeof(XMLCh)
  +        );//new XMLCh[skip+1-index];
   
           XMLString::subString(token, tokenizeStr, index, skip);
           tokenStack->addElement(token);
  @@ -1552,7 +1556,10 @@
       if (strLen == 0)
           return;
   
  -    XMLCh* retBuf = new XMLCh[strLen+1];
  +    XMLCh* retBuf = (XMLCh*) fgMemoryManager->allocate
  +    (
  +        (strLen+1) * sizeof(XMLCh)
  +    );//new XMLCh[strLen+1];
       XMLCh* retPtr = &(retBuf[0]);
       XMLCh* startPtr = toConvert;
   
  @@ -1572,7 +1579,7 @@
       retBuf[strLen] = chNull;
   
       XMLString::moveChars(toConvert, retBuf, strLen);
  -    delete[] retBuf;
  +    fgMemoryManager->deallocate(retBuf);//delete[] retBuf;
       return;
   }
   
  @@ -1648,7 +1655,10 @@
       //
       //  Work through what remains and chop continuous spaces
       //
  -    XMLCh* retBuf = new XMLCh[endPtr - startPtr + 1];
  +    XMLCh* retBuf = (XMLCh*) fgMemoryManager->allocate
  +    (
  +        (endPtr - startPtr + 1) * sizeof(XMLCh)
  +    );//new XMLCh[endPtr - startPtr + 1];
       XMLCh* retPtr = &(retBuf[0]);
       bool  inSpace = false;
       while (startPtr < endPtr)
  @@ -1678,7 +1688,7 @@
   
       *retPtr = chNull;
       XMLString::moveChars(toConvert, retBuf, stringLen(retBuf)+1); //copy the last chNull as well
  -    delete[] retBuf;
  +    fgMemoryManager->deallocate(retBuf);//delete[] retBuf;
       return;
   }
   
  @@ -1691,7 +1701,10 @@
       if (( !toConvert ) || ( !*toConvert ))
           return;
   
  -    XMLCh* retBuf = new XMLCh[ XMLString::stringLen(toConvert) + 1];
  +    XMLCh* retBuf = (XMLCh*) fgMemoryManager->allocate
  +    (
  +        (XMLString::stringLen(toConvert) + 1) * sizeof(XMLCh)
  +    );//new XMLCh[ XMLString::stringLen(toConvert) + 1];
       XMLCh* retPtr = &(retBuf[0]);
       XMLCh* startPtr = toConvert;
   
  @@ -1711,7 +1724,7 @@
   
       *retPtr = chNull;
       XMLString::moveChars(toConvert, retBuf, stringLen(retBuf)+1); //copy the last chNull as well
  -    delete[] retBuf;
  +    fgMemoryManager->deallocate(retBuf);//delete[] retBuf;
       return;
   }
   
  @@ -1802,10 +1815,14 @@
   // ---------------------------------------------------------------------------
   //  XMLString: Private static methods
   // ---------------------------------------------------------------------------
  -void XMLString::initString(XMLLCPTranscoder* const defToUse)
  +void XMLString::initString(XMLLCPTranscoder* const defToUse,
  +                           MemoryManager* const manager)
   {
       // Store away the default transcoder that we are to use
       gTranscoder = defToUse;
  +
  +    // Store memory manager
  +    fgMemoryManager = manager;
   }
   
   void XMLString::termString()
  @@ -1813,6 +1830,9 @@
       // Just clean up our local code page transcoder
       delete gTranscoder;
       gTranscoder = 0;
  +
  +    // reset memory manager
  +    fgMemoryManager = 0;
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.17      +7 -1      xml-xerces/c/src/xercesc/util/XMLString.hpp
  
  Index: XMLString.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLString.hpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- XMLString.hpp	15 May 2003 19:07:46 -0000	1.16
  +++ XMLString.hpp	18 May 2003 14:02:05 -0000	1.17
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.17  2003/05/18 14:02:05  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.16  2003/05/15 19:07:46  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -1455,7 +1458,8 @@
       /** @name Initialization */
       //@{
       /** Init/Term methods called from XMLPlatformUtils class */
  -    static void initString(XMLLCPTranscoder* const defToUse);
  +    static void initString(XMLLCPTranscoder* const defToUse,
  +                           MemoryManager* const manager);
       static void termString();
       //@}
   
  @@ -1466,6 +1470,8 @@
   	static bool validateRegion(const XMLCh* const str1, const int offset1,
   						const XMLCh* const str2, const int offset2,
   						const unsigned int charCount);
  +
  +    static MemoryManager* fgMemoryManager;
   
       friend class XMLPlatformUtils;
   };
  
  
  
  1.5       +5 -2      xml-xerces/c/src/xercesc/util/XMLStringTokenizer.cpp
  
  Index: XMLStringTokenizer.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLStringTokenizer.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XMLStringTokenizer.cpp	16 May 2003 03:11:22 -0000	1.4
  +++ XMLStringTokenizer.cpp	18 May 2003 14:02:05 -0000	1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:05  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/16 03:11:22  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -105,7 +108,7 @@
           fDelimeters = XMLString::replicate(fgDelimeters, fMemoryManager);
   
           if (fStringLen > 0) {
  -            fTokens = new (fMemoryManager) RefArrayVectorOf<XMLCh>(4, true);
  +            fTokens = new (fMemoryManager) RefArrayVectorOf<XMLCh>(4, true, fMemoryManager);
           }
       }
       catch(...) {
  @@ -127,7 +130,7 @@
           fDelimeters = XMLString::replicate(delim, fMemoryManager);
   
           if (fStringLen > 0) {
  -            fTokens = new (fMemoryManager) RefArrayVectorOf<XMLCh>(4, true);
  +            fTokens = new (fMemoryManager) RefArrayVectorOf<XMLCh>(4, true, fMemoryManager);
           }
       }
       catch(...) {
  
  
  
  1.9       +2 -2      xml-xerces/c/src/xercesc/util/XMLURL.hpp
  
  Index: XMLURL.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLURL.hpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- XMLURL.hpp	16 May 2003 14:09:42 -0000	1.8
  +++ XMLURL.hpp	18 May 2003 14:02:05 -0000	1.9
  @@ -131,7 +131,7 @@
       XMLURL
       (
           const   char* const     urlText
  -        , MemoryManager* const manager 
  +        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
       );
       XMLURL(const XMLURL& toCopy);
       virtual ~XMLURL();
  
  
  
  1.4       +4 -1      xml-xerces/c/src/xercesc/util/regx/Op.cpp
  
  Index: Op.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/regx/Op.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Op.cpp	16 May 2003 00:03:10 -0000	1.3
  +++ Op.cpp	18 May 2003 14:02:06 -0000	1.4
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.4  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.3  2003/05/16 00:03:10  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -184,7 +187,7 @@
   // ---------------------------------------------------------------------------
   UnionOp::UnionOp(const short type, const int size, MemoryManager* const manager)
       : Op(type)
  -      , fBranches(new (manager) RefVectorOf<Op> (size, false)) {
  +      , fBranches(new (manager) RefVectorOf<Op> (size, false, manager)) {
   
   }
   
  
  
  
  1.6       +4 -1      xml-xerces/c/src/xercesc/util/regx/OpFactory.cpp
  
  Index: OpFactory.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/regx/OpFactory.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- OpFactory.cpp	16 May 2003 00:03:10 -0000	1.5
  +++ OpFactory.cpp	18 May 2003 14:02:06 -0000	1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.5  2003/05/16 00:03:10  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -98,7 +101,7 @@
       fOpVector(0)
       , fMemoryManager(manager)
   {
  -    fOpVector = new (fMemoryManager) RefVectorOf<Op>(16, true);
  +    fOpVector = new (fMemoryManager) RefVectorOf<Op>(16, true, fMemoryManager);
   }
   
   OpFactory::~OpFactory() {
  
  
  
  1.5       +4 -1      xml-xerces/c/src/xercesc/util/regx/RangeTokenMap.cpp
  
  Index: RangeTokenMap.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/regx/RangeTokenMap.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- RangeTokenMap.cpp	15 May 2003 19:10:23 -0000	1.4
  +++ RangeTokenMap.cpp	18 May 2003 14:02:06 -0000	1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/15 19:10:23  knoaman
    * Add missing include.
    *
  @@ -281,7 +284,7 @@
               fTokenFactory = new TokenFactory();
               fTokenRegistry = new RefHashTableOf<RangeTokenElemMap>(109);
               fRangeMap = new RefHashTableOf<RangeFactory>(29);
  -	        fCategories = new XMLStringPool();
  +	        fCategories = new XMLStringPool(109);
   	        fRegistryInitialized = true;
           }
       }
  
  
  
  1.12      +5 -2      xml-xerces/c/src/xercesc/util/regx/RegularExpression.cpp
  
  Index: RegularExpression.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/regx/RegularExpression.cpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- RegularExpression.cpp	16 May 2003 21:37:00 -0000	1.11
  +++ RegularExpression.cpp	18 May 2003 14:02:06 -0000	1.12
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.12  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.11  2003/05/16 21:37:00  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -696,7 +699,7 @@
     if (fOperations == 0)
   	  prepare();
   
  -  RefArrayVectorOf<XMLCh>* tokenStack = new (fMemoryManager) RefArrayVectorOf<XMLCh>(16, true);
  +  RefArrayVectorOf<XMLCh>* tokenStack = new (fMemoryManager) RefArrayVectorOf<XMLCh>(16, true, fMemoryManager);
   
     Context* context = 0;
     Context* tmpContext = 0;
  @@ -869,7 +872,7 @@
   		ThrowXML(RuntimeException, XMLExcepts::Regex_RepPatMatchesZeroString);
     }
         
  -  RefVectorOf<Match> *subEx = new (fMemoryManager) RefVectorOf<Match>(10, true);
  +  RefVectorOf<Match> *subEx = new (fMemoryManager) RefVectorOf<Match>(10, true, fMemoryManager);
   	  Janitor<RefVectorOf<Match> > janSubEx(subEx);
   
     //Call to tokenize with Match vector so that we keep track of the locations
  
  
  
  1.9       +5 -2      xml-xerces/c/src/xercesc/util/regx/RegxParser.cpp
  
  Index: RegxParser.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/regx/RegxParser.cpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- RegxParser.cpp	16 May 2003 00:03:10 -0000	1.8
  +++ RegxParser.cpp	18 May 2003 14:02:06 -0000	1.9
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.9  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.8  2003/05/16 00:03:10  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -656,7 +659,7 @@
           fHasBackReferences =  true;
   
           if (fReferences == 0) {
  -            this->fReferences = new (fMemoryManager) RefVectorOf<ReferencePosition>(8, true);
  +            this->fReferences = new (fMemoryManager) RefVectorOf<ReferencePosition>(8, true, fMemoryManager);
           }
   
           fReferences->addElement(new (fMemoryManager) ReferencePosition(refNo, fOffset));
  @@ -848,7 +851,7 @@
   
       fHasBackReferences = true;
       if (fReferences == 0) {
  -        fReferences = new (fMemoryManager) RefVectorOf<ReferencePosition>(8, true);
  +        fReferences = new (fMemoryManager) RefVectorOf<ReferencePosition>(8, true, fMemoryManager);
       }
   
       fReferences->addElement(new (fMemoryManager) ReferencePosition(refNo, fOffset - 2));
  
  
  
  1.8       +4 -1      xml-xerces/c/src/xercesc/util/regx/TokenFactory.cpp
  
  Index: TokenFactory.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/regx/TokenFactory.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- TokenFactory.cpp	16 May 2003 21:37:00 -0000	1.7
  +++ TokenFactory.cpp	18 May 2003 14:02:06 -0000	1.8
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.8  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.7  2003/05/16 21:37:00  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -126,7 +129,7 @@
   //  TokenFactory: Constructors and Destructor
   // ---------------------------------------------------------------------------
   TokenFactory::TokenFactory(MemoryManager* const manager) :
  -    fTokens(new (manager) RefVectorOf<Token> (16, true))
  +    fTokens(new (manager) RefVectorOf<Token> (16, true, manager))
       , fEmpty(0)
       , fLineBegin(0)
       , fLineBegin2(0)
  
  
  
  1.6       +4 -1      xml-xerces/c/src/xercesc/util/regx/UnionToken.cpp
  
  Index: UnionToken.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/regx/UnionToken.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- UnionToken.cpp	16 May 2003 21:37:00 -0000	1.5
  +++ UnionToken.cpp	18 May 2003 14:02:06 -0000	1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.5  2003/05/16 21:37:00  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -138,7 +141,7 @@
           return;
   
       if (fChildren == 0)
  -        fChildren = new (tokFactory->getMemoryManager()) RefVectorOf<Token>(INITIALSIZE, false);
  +        fChildren = new (tokFactory->getMemoryManager()) RefVectorOf<Token>(INITIALSIZE, false, tokFactory->getMemoryManager());
   
       if (getTokenType() == T_UNION) {
   
  
  
  
  1.5       +24 -6     xml-xerces/c/src/xercesc/util/regx/XMLRangeFactory.cpp
  
  Index: XMLRangeFactory.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/regx/XMLRangeFactory.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XMLRangeFactory.cpp	4 Nov 2002 15:17:01 -0000	1.4
  +++ XMLRangeFactory.cpp	18 May 2003 14:02:06 -0000	1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2002/11/04 15:17:01  tng
    * C++ Namespace Support.
    *
  @@ -174,7 +177,10 @@
       // Create space ranges
       unsigned int wsTblLen = getTableLen(gWhitespaceChars);
       RangeToken* tok = tokFactory->createRange();
  -    XMLInt32* wsRange = new XMLInt32[wsTblLen];
  +    XMLInt32* wsRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate
  +    (
  +        wsTblLen * sizeof(XMLInt32)
  +    );//new XMLInt32[wsTblLen];
   
       tok->setRangeValues(wsRange, wsTblLen);
       setupRange(wsRange, gWhitespaceChars, 0);
  @@ -183,7 +189,10 @@
       // Create digits ranges
       tok = tokFactory->createRange();
       unsigned int digitTblLen = getTableLen(gDigitChars);
  -    XMLInt32* digitRange = new XMLInt32[digitTblLen];
  +    XMLInt32* digitRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate
  +    (
  +        digitTblLen * sizeof(XMLInt32)
  +    );//new XMLInt32[digitTblLen];
   
       tok->setRangeValues(digitRange, digitTblLen);
       setupRange(digitRange, gDigitChars, 0);
  @@ -193,8 +202,11 @@
       unsigned int baseTblLen = getTableLen(gBaseChars);
       unsigned int ideoTblLen = getTableLen(gIdeographicChars);
       unsigned int wordRangeLen = baseTblLen + ideoTblLen + digitTblLen;
  -    XMLInt32* wordRange = new XMLInt32[wordRangeLen];
  -    ArrayJanitor<XMLInt32> janWordRange(wordRange);
  +    XMLInt32* wordRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate
  +    (
  +        wordRangeLen * sizeof(XMLInt32)
  +    );//new XMLInt32[wordRangeLen];
  +    ArrayJanitor<XMLInt32> janWordRange(wordRange, XMLPlatformUtils::fgMemoryManager);
   
       setupRange(wordRange, gBaseChars, 0);
       setupRange(wordRange, gIdeographicChars, baseTblLen);
  @@ -205,7 +217,10 @@
       unsigned int combTblLen = getTableLen(gCombiningChars);
       unsigned int extTblLen = getTableLen(gExtenderChars);
       unsigned int nameTblLen = wordRangeLen + combTblLen + extTblLen;
  -    XMLInt32* nameRange = new XMLInt32[nameTblLen + 8];
  +    XMLInt32* nameRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate
  +    (
  +        (nameTblLen + 8) * sizeof(XMLInt32)
  +    );//new XMLInt32[nameTblLen + 8];
   
       tok->setRangeValues(nameRange, nameTblLen + 8);
       memcpy(nameRange, wordRange, wordRangeLen * sizeof(XMLInt32));
  @@ -226,7 +241,10 @@
       // Create initialNameChar ranges
       tok = tokFactory->createRange();
       unsigned int initialNameTblLen = baseTblLen + ideoTblLen;
  -    XMLInt32* initialNameRange = new XMLInt32[initialNameTblLen + 4];
  +    XMLInt32* initialNameRange = (XMLInt32*) XMLPlatformUtils::fgMemoryManager->allocate
  +    (
  +        (initialNameTblLen + 4) * sizeof(XMLInt32)
  +    );//new XMLInt32[initialNameTblLen + 4];
   
       tok->setRangeValues(initialNameRange, initialNameTblLen + 4);
       memcpy(initialNameRange, wordRange, initialNameTblLen * sizeof(XMLInt32));
  
  
  
  1.5       +6 -3      xml-xerces/c/src/xercesc/validators/DTD/DTDElementDecl.cpp
  
  Index: DTDElementDecl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/DTDElementDecl.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DTDElementDecl.cpp	16 May 2003 21:43:19 -0000	1.4
  +++ DTDElementDecl.cpp	18 May 2003 14:02:06 -0000	1.5
  @@ -182,7 +182,7 @@
           if (!fAttDefs)
               faultInAttDefList();
   
  -        ((DTDElementDecl*)this)->fAttList = new DTDAttDefList(fAttDefs);
  +        ((DTDElementDecl*)this)->fAttList = new (getMemoryManager()) DTDAttDefList(fAttDefs);
       }
   
       // Reset it before we return it
  @@ -391,6 +391,7 @@
               , specNode->getElement()
               , 0
               , ContentSpecNode::Leaf
  +            , getMemoryManager()
           );
       }
        else if ((specNode->getType() == ContentSpecNode::Choice)
  @@ -409,6 +410,7 @@
                   , specNode->getFirst()->getElement()
                   , specNode->getSecond()->getElement()
                   , specNode->getType()
  +                , getMemoryManager()
               );
           }
       }
  @@ -429,6 +431,7 @@
                   , specNode->getFirst()->getElement()
                   , 0
                   , specNode->getType()
  +                , getMemoryManager()
               );
           }
       }
  @@ -450,7 +453,7 @@
   void DTDElementDecl::faultInAttDefList() const
   {
       // Use a hash modulus of 29 and tell it owns its elements
  -    ((DTDElementDecl*)this)->fAttDefs = new (getMemoryManager()) RefHashTableOf<DTDAttDef>(29, true);
  +    ((DTDElementDecl*)this)->fAttDefs = new (getMemoryManager()) RefHashTableOf<DTDAttDef>(29, true, getMemoryManager());
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.6       +7 -4      xml-xerces/c/src/xercesc/validators/DTD/DTDGrammar.cpp
  
  Index: DTDGrammar.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/DTDGrammar.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DTDGrammar.cpp	15 May 2003 18:54:50 -0000	1.5
  +++ DTDGrammar.cpp	18 May 2003 14:02:06 -0000	1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.5  2003/05/15 18:54:50  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -112,10 +115,10 @@
       //  <TBD> Investigate what the optimum values would be for the various
       //  pools.
       //
  -    fElemDeclPool = new (fMemoryManager) NameIdPool<DTDElementDecl>(109);
  -    fElemNonDeclPool = new (fMemoryManager) NameIdPool<DTDElementDecl>(29);
  -    fEntityDeclPool = new (fMemoryManager) NameIdPool<DTDEntityDecl>(109);
  -    fNotationDeclPool = new (fMemoryManager) NameIdPool<XMLNotationDecl>(109);
  +    fElemDeclPool = new (fMemoryManager) NameIdPool<DTDElementDecl>(109, 128, fMemoryManager);
  +    fElemNonDeclPool = new (fMemoryManager) NameIdPool<DTDElementDecl>(29, 128, fMemoryManager);
  +    fEntityDeclPool = new (fMemoryManager) NameIdPool<DTDEntityDecl>(109, 128, fMemoryManager);
  +    fNotationDeclPool = new (fMemoryManager) NameIdPool<XMLNotationDecl>(109, 128, fMemoryManager);
   
       //
       //  Call our own reset method. This lets us have the pool setup stuff
  
  
  
  1.27      +79 -13    xml-xerces/c/src/xercesc/validators/DTD/DTDScanner.cpp
  
  Index: DTDScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/DTDScanner.cpp,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- DTDScanner.cpp	16 May 2003 21:43:19 -0000	1.26
  +++ DTDScanner.cpp	18 May 2003 14:02:06 -0000	1.27
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.27  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.26  2003/05/16 21:43:19  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -264,6 +267,9 @@
               ContentSpecNode::ZeroOrOne
               , prevNode
               , 0
  +            , true
  +            , true
  +            , manager
           );
       }
        else if (testCh == chPlus)
  @@ -273,6 +279,9 @@
               ContentSpecNode::OneOrMore
               , prevNode
               , 0
  +            , true
  +            , true
  +            , manager
           );
       }
        else if (testCh == chAsterisk)
  @@ -282,6 +291,9 @@
               ContentSpecNode::ZeroOrMore
               , prevNode
               , 0
  +            , true
  +            , true
  +            , manager
           );
       }
   
  @@ -306,7 +318,7 @@
       , fPEntityDeclPool(0)
       , fDocTypeReaderId(0)
   {
  -    fPEntityDeclPool = new NameIdPool<DTDEntityDecl>(109);
  +    fPEntityDeclPool = new (fMemoryManager) NameIdPool<DTDEntityDecl>(109, 128, fMemoryManager);
   }
   
   DTDScanner::~DTDScanner()
  @@ -1280,7 +1292,11 @@
               decl->setExternalElemDeclaration(isReadingExternalEntity());
               fDTDGrammar->putElemDecl(decl);
           }
  -        curNode = new (fMemoryManager) ContentSpecNode(decl->getElementName());
  +        curNode = new (fMemoryManager) ContentSpecNode
  +        (
  +            decl->getElementName()
  +            , fMemoryManager
  +        );
   
           // Check for a PE ref here, but don't require spaces
           const bool gotSpaces = checkForPERef(false, false, true);
  @@ -1329,13 +1345,29 @@
       if (opCh == chComma)
       {
           curType = ContentSpecNode::Sequence;
  -        headNode = new (fMemoryManager) ContentSpecNode(curType, curNode, 0);
  +        headNode = new (fMemoryManager) ContentSpecNode
  +        (
  +            curType
  +            , curNode
  +            , 0
  +            , true
  +            , true
  +            , fMemoryManager
  +        );
           curNode = headNode;
       }
        else if (opCh == chPipe)
       {
           curType = ContentSpecNode::Choice;
  -        headNode = new (fMemoryManager) ContentSpecNode(curType, curNode, 0);
  +        headNode = new (fMemoryManager) ContentSpecNode
  +        (
  +            curType
  +            , curNode
  +            , 0
  +            , true
  +            , true
  +            , fMemoryManager
  +        );
           curNode = headNode;
       }
        else
  @@ -1413,11 +1445,14 @@
                           fScanner->getValidator()->emitError(XMLValid::PartialMarkupInPE);
   
                       // Else patch it in and make it the new current
  -                    ContentSpecNode* newCur = new ContentSpecNode
  +                    ContentSpecNode* newCur = new (fMemoryManager) ContentSpecNode
                       (
                           curType
                           , subNode
                           , 0
  +                        , true
  +                        , true
  +                        , fMemoryManager
                       );
                       curNode->setSecond(newCur);
                       lastNode = curNode;
  @@ -1457,7 +1492,11 @@
                           fDTDGrammar->putElemDecl(decl);
                       }
   
  -                    ContentSpecNode* tmpLeaf = new (fMemoryManager) ContentSpecNode(decl->getElementName());
  +                    ContentSpecNode* tmpLeaf = new (fMemoryManager) ContentSpecNode
  +                    (
  +                        decl->getElementName()
  +                        , fMemoryManager
  +                    );
   
                       // Check for a repetition character after the leaf
                       const XMLCh repCh = fReaderMgr->peekNextChar();
  @@ -1476,6 +1515,9 @@
                           curType
                           , tmpLeaf2
                           , 0
  +                        , true
  +                        , true
  +                        , fMemoryManager
                       );
                       curNode->setSecond(newCur);
                       lastNode = curNode;
  @@ -3314,11 +3356,18 @@
       //  PCDATA element id. This current node pointer will be pushed down the
       //  tree as we go.
       //
  -    ContentSpecNode* curNode =
  -                 new (fMemoryManager) ContentSpecNode(new (fMemoryManager) QName(XMLUni::fgZeroLenString,
  -                                               XMLUni::fgZeroLenString,
  -                                               XMLElementDecl::fgPCDataElemId),
  -                                     false);
  +    ContentSpecNode* curNode = new (fMemoryManager) ContentSpecNode
  +    (
  +        new (fMemoryManager) QName
  +        (
  +            XMLUni::fgZeroLenString
  +            , XMLUni::fgZeroLenString
  +            , XMLElementDecl::fgPCDataElemId
  +            , fMemoryManager
  +        )
  +        , false
  +        , fMemoryManager
  +    );
   
       //
       //  Set the initial leaf as the temporary head. If we hit the first choice
  @@ -3390,6 +3439,9 @@
                           ContentSpecNode::ZeroOrMore
                           , headNode
                           , 0
  +                        , true
  +                        , true
  +                        , fMemoryManager
                       );
                   }
   
  @@ -3447,7 +3499,14 @@
                   (
                       ContentSpecNode::Choice
                       , curNode
  -                    , new (fMemoryManager) ContentSpecNode(decl->getElementName())
  +                    , new (fMemoryManager) ContentSpecNode
  +                      (
  +                          decl->getElementName()
  +                          , fMemoryManager
  +                      )
  +                    , true
  +                    , true
  +                    , fMemoryManager
                   );
   
                   // Remember the top node
  @@ -3462,7 +3521,14 @@
                       (
                           ContentSpecNode::Choice
                           , oldRight
  -                        , new (fMemoryManager) ContentSpecNode(decl->getElementName())
  +                        , new (fMemoryManager) ContentSpecNode
  +                          (
  +                              decl->getElementName()
  +                              , fMemoryManager
  +                          )
  +                        , true
  +                        , true
  +                        , fMemoryManager
                       )
                   );
   
  
  
  
  1.5       +5 -2      xml-xerces/c/src/xercesc/validators/common/AllContentModel.cpp
  
  Index: AllContentModel.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/common/AllContentModel.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AllContentModel.cpp	15 May 2003 18:48:27 -0000	1.4
  +++ AllContentModel.cpp	18 May 2003 14:02:06 -0000	1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/15 18:48:27  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -113,8 +116,8 @@
       //  99% of the scenarios.
       //
   
  -    ValueVectorOf<QName*> children(64);
  -    ValueVectorOf<bool> childOptional(64);
  +    ValueVectorOf<QName*> children(64, fMemoryManager);
  +    ValueVectorOf<bool> childOptional(64, fMemoryManager);
   
       //
       //  Get the parent element's content spec. This is the head of the tree
  
  
  
  1.5       +5 -0      xml-xerces/c/src/xercesc/validators/common/CMLeaf.hpp
  
  Index: CMLeaf.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/common/CMLeaf.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CMLeaf.hpp	16 May 2003 21:43:20 -0000	1.4
  +++ CMLeaf.hpp	18 May 2003 14:02:06 -0000	1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/16 21:43:20  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -219,6 +222,7 @@
                 XMLUni::fgZeroLenString
               , XMLUni::fgZeroLenString
               , XMLElementDecl::fgInvalidElemId
  +            , fMemoryManager
           );
           // We have to be responsible for this QName - override default fAdopt
           fAdopt = true;
  @@ -245,6 +249,7 @@
                 XMLUni::fgZeroLenString
               , XMLUni::fgZeroLenString
               , XMLElementDecl::fgInvalidElemId
  +            , fMemoryManager
           );
           // We have to be responsible for this QName - override adopt parameter
           fAdopt = true;
  
  
  
  1.8       +2 -2      xml-xerces/c/src/xercesc/validators/common/ContentSpecNode.cpp
  
  Index: ContentSpecNode.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/common/ContentSpecNode.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ContentSpecNode.cpp	15 May 2003 18:48:27 -0000	1.7
  +++ ContentSpecNode.cpp	18 May 2003 14:02:06 -0000	1.8
  @@ -82,7 +82,7 @@
   // ---------------------------------------------------------------------------
   
   ContentSpecNode::ContentSpecNode(const ContentSpecNode& toCopy) :
  -    fMemoryManager(XMLPlatformUtils::fgMemoryManager)
  +    fMemoryManager(toCopy.fMemoryManager)
   {
       const QName* tempElement = toCopy.getElement();
       if (tempElement)
  
  
  
  1.7       +32 -16    xml-xerces/c/src/xercesc/validators/common/ContentSpecNode.hpp
  
  Index: ContentSpecNode.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/common/ContentSpecNode.hpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ContentSpecNode.hpp	15 May 2003 18:48:27 -0000	1.6
  +++ ContentSpecNode.hpp	18 May 2003 14:02:06 -0000	1.7
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.7  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.6  2003/05/15 18:48:27  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -202,9 +205,18 @@
       // -----------------------------------------------------------------------
       //  Constructors and Destructor
       // -----------------------------------------------------------------------
  -    ContentSpecNode();
  -    ContentSpecNode(QName* const toAdopt);
  -    ContentSpecNode(QName* const toAdopt, const bool copyQName);
  +    ContentSpecNode(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
  +    ContentSpecNode
  +    (
  +        QName* const toAdopt
  +        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
  +    );
  +    ContentSpecNode
  +    (
  +        QName* const toAdopt
  +        , const bool copyQName
  +        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
  +    );
       ContentSpecNode
       (
           const   NodeTypes               type
  @@ -212,6 +224,7 @@
           ,       ContentSpecNode* const  secondToAdopt
           , const bool                    adoptFirst = true
           , const bool                    adoptSecond = true
  +        ,       MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
       );
       ContentSpecNode(const ContentSpecNode&);
   	~ContentSpecNode();
  @@ -313,9 +326,9 @@
   // ---------------------------------------------------------------------------
   //  ContentSpecNode: Constructors and Destructor
   // ---------------------------------------------------------------------------
  -inline ContentSpecNode::ContentSpecNode() :
  +inline ContentSpecNode::ContentSpecNode(MemoryManager* const manager) :
   
  -    fMemoryManager(XMLPlatformUtils::fgMemoryManager)
  +    fMemoryManager(manager)
       , fElement(0)
       , fFirst(0)
       , fSecond(0)
  @@ -328,9 +341,10 @@
   }
   
   inline
  -ContentSpecNode::ContentSpecNode(QName* const element) :
  +ContentSpecNode::ContentSpecNode(QName* const element,
  +                                 MemoryManager* const manager) :
   
  -    fMemoryManager(XMLPlatformUtils::fgMemoryManager)
  +    fMemoryManager(manager)
       , fElement(0)
       , fFirst(0)
       , fSecond(0)
  @@ -345,10 +359,11 @@
   }
   
   inline
  -ContentSpecNode::ContentSpecNode(QName* const element
  -                               , const bool copyQName) :
  +ContentSpecNode::ContentSpecNode( QName* const element
  +                                , const bool copyQName
  +                                , MemoryManager* const manager) :
   
  -    fMemoryManager(XMLPlatformUtils::fgMemoryManager)
  +    fMemoryManager(manager)
       , fElement(0)
       , fFirst(0)
       , fSecond(0)
  @@ -370,13 +385,14 @@
   }
   
   inline
  -ContentSpecNode::ContentSpecNode(const  NodeTypes               type
  -                                ,       ContentSpecNode* const  firstAdopt
  -                                ,       ContentSpecNode* const  secondAdopt
  -                                , const bool                    adoptFirst
  -                                , const bool                    adoptSecond) :
  +ContentSpecNode::ContentSpecNode(const  NodeTypes              type
  +                                ,       ContentSpecNode* const firstAdopt
  +                                ,       ContentSpecNode* const secondAdopt
  +                                , const bool                   adoptFirst
  +                                , const bool                   adoptSecond
  +                                ,       MemoryManager* const   manager) :
   
  -    fMemoryManager(XMLPlatformUtils::fgMemoryManager)
  +    fMemoryManager(manager)
       , fElement(0)
       , fFirst(firstAdopt)
       , fSecond(secondAdopt)
  
  
  
  1.7       +7 -1      xml-xerces/c/src/xercesc/validators/common/DFAContentModel.cpp
  
  Index: DFAContentModel.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/common/DFAContentModel.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DFAContentModel.cpp	16 May 2003 21:43:20 -0000	1.6
  +++ DFAContentModel.cpp	18 May 2003 14:02:06 -0000	1.7
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.7  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.6  2003/05/16 21:43:20  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -553,6 +556,7 @@
               XMLUni::fgZeroLenString
               , XMLUni::fgZeroLenString
               , XMLContentModel::gEOCFakeId
  +            , fMemoryManager
           )
           , ~0
           , true
  @@ -645,7 +649,7 @@
   
       for (unsigned int outIndex = 0; outIndex < fLeafCount; outIndex++)
       {
  -        fElemMap[outIndex] = new (fMemoryManager) QName();
  +        fElemMap[outIndex] = new (fMemoryManager) QName(fMemoryManager);
   
           if ( (fLeafListType[outIndex] & 0x0f) != ContentSpecNode::Leaf )
               if (!fLeafNameTypeVector)
  @@ -796,6 +800,7 @@
               curArraySize
               , true
               , new (fMemoryManager) HashCMStateSet()
  +            , fMemoryManager
           );
       //stateTable->put((CMStateSet*)setT, new (fMemoryManager) XMLInteger(0));
   
  @@ -1232,6 +1237,7 @@
                   XMLUni::fgZeroLenString
                   , XMLUni::fgZeroLenString
                   , ((CMAny*) nodeCur)->getURI()
  +                , fMemoryManager
               )
               , ((CMAny*)nodeCur)->getPosition()
               , true
  
  
  
  1.8       +8 -4      xml-xerces/c/src/xercesc/validators/common/GrammarResolver.cpp
  
  Index: GrammarResolver.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/common/GrammarResolver.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- GrammarResolver.cpp	16 May 2003 21:43:20 -0000	1.7
  +++ GrammarResolver.cpp	18 May 2003 14:02:06 -0000	1.8
  @@ -57,6 +57,9 @@
   
   /*
    * $Log$
  + * Revision 1.8  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.7  2003/05/16 21:43:20  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -108,12 +111,13 @@
   GrammarResolver::GrammarResolver(MemoryManager* const manager) :
       fCacheGrammar(false)
       , fUseCachedGrammar(false)
  +    , fStringPool(109, manager)
       , fGrammarRegistry(0)
       , fCachedGrammarRegistry(0)
       , fDataTypeReg(0)
       , fMemoryManager(manager)	 
   {
  -    fGrammarRegistry = new (manager) RefHashTableOf<Grammar>(29, true);
  +    fGrammarRegistry = new (manager) RefHashTableOf<Grammar>(29, true,  manager);
   }
   
   GrammarResolver::~GrammarResolver()
  @@ -212,7 +216,7 @@
   void GrammarResolver::cacheGrammars()
   {
       RefHashTableOfEnumerator<Grammar> grammarEnum(fGrammarRegistry);
  -    ValueVectorOf<XMLCh*> keys(8);
  +    ValueVectorOf<XMLCh*> keys(8, fMemoryManager);
       unsigned int keyCount = 0;
   
       //Check if a grammar has already been cached.
  @@ -229,7 +233,7 @@
       }
   
       if (!fCachedGrammarRegistry)
  -        fCachedGrammarRegistry = new (fMemoryManager) RefHashTableOf<Grammar>(29, true);
  +        fCachedGrammarRegistry = new (fMemoryManager) RefHashTableOf<Grammar>(29, true, fMemoryManager);
   
       // Cache
       for (unsigned int i=0; i<keyCount; i++) {
  @@ -247,7 +251,7 @@
   void GrammarResolver::cacheGrammarFromParse(const bool aValue) {
   
       if (aValue && !fCachedGrammarRegistry) {
  -        fCachedGrammarRegistry = new (fMemoryManager) RefHashTableOf<Grammar>(29, true);
  +        fCachedGrammarRegistry = new (fMemoryManager) RefHashTableOf<Grammar>(29, true, fMemoryManager);
       }
   
       fCacheGrammar = aValue;
  
  
  
  1.6       +5 -2      xml-xerces/c/src/xercesc/validators/common/MixedContentModel.cpp
  
  Index: MixedContentModel.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/common/MixedContentModel.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- MixedContentModel.cpp	16 May 2003 21:43:20 -0000	1.5
  +++ MixedContentModel.cpp	18 May 2003 14:02:06 -0000	1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.5  2003/05/16 21:43:20  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -169,8 +172,8 @@
       //  it an initial capacity of 64 which should be more than enough for
       //  99% of the scenarios.
       //
  -    ValueVectorOf<QName*> children(64);
  -    ValueVectorOf<ContentSpecNode::NodeTypes> childTypes(64);
  +    ValueVectorOf<QName*> children(64, fMemoryManager);
  +    ValueVectorOf<ContentSpecNode::NodeTypes> childTypes(64, fMemoryManager);
   
       //
       //  Get the parent element's content spec. This is the head of the tree
  
  
  
  1.6       +9 -4      xml-xerces/c/src/xercesc/validators/common/SimpleContentModel.hpp
  
  Index: SimpleContentModel.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/common/SimpleContentModel.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- SimpleContentModel.hpp	15 May 2003 18:48:27 -0000	1.5
  +++ SimpleContentModel.hpp	18 May 2003 14:02:06 -0000	1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2003/05/18 14:02:06  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.5  2003/05/15 18:48:27  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -168,6 +171,7 @@
         , QName* const                      firstChild
         , QName* const                      secondChild
         , const ContentSpecNode::NodeTypes  cmOp
  +      , MemoryManager* const              manager
       );
   
       ~SimpleContentModel();
  @@ -249,6 +253,7 @@
       , QName* const                     firstChild
       , QName* const                     secondChild
       , const ContentSpecNode::NodeTypes cmOp
  +     , MemoryManager* const            manager
   )
       : fFirstChild(0)
       , fSecondChild(0)
  @@ -256,14 +261,14 @@
   	, fDTD(dtd)
   {
       if (firstChild)
  -        fFirstChild = new (XMLPlatformUtils::fgMemoryManager) QName(*firstChild);
  +        fFirstChild = new (manager) QName(*firstChild);
       else
  -        fFirstChild = new (XMLPlatformUtils::fgMemoryManager) QName(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, XMLElementDecl::fgInvalidElemId);
  +        fFirstChild = new (manager) QName(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, XMLElementDecl::fgInvalidElemId, manager);
   
       if (secondChild)
  -        fSecondChild = new (XMLPlatformUtils::fgMemoryManager) QName(*secondChild);
  +        fSecondChild = new (manager) QName(*secondChild);
       else
  -        fSecondChild = new (XMLPlatformUtils::fgMemoryManager) QName(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, XMLElementDecl::fgInvalidElemId);
  +        fSecondChild = new (manager) QName(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, XMLElementDecl::fgInvalidElemId, manager);
   }
   
   inline SimpleContentModel::~SimpleContentModel()
  
  
  
  1.6       +5 -2      xml-xerces/c/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp
  
  Index: AnyURIDatatypeValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AnyURIDatatypeValidator.cpp	16 May 2003 06:01:57 -0000	1.5
  +++ AnyURIDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.5  2003/05/16 06:01:57  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -204,7 +207,7 @@
       try
       {
           if (!fTempURI)
  -            fTempURI = new XMLUri(BASE_URI, fMemoryManager);
  +            fTempURI = new (fMemoryManager) XMLUri(BASE_URI, fMemoryManager);
   
           // Support for relative URLs
           // According to Java 1.1: URLs may also be specified with a
  
  
  
  1.16      +6 -3      xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
  
  Index: DatatypeValidatorFactory.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- DatatypeValidatorFactory.cpp	16 May 2003 21:43:20 -0000	1.15
  +++ DatatypeValidatorFactory.cpp	18 May 2003 14:02:07 -0000	1.16
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.16  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.15  2003/05/16 21:43:20  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -725,7 +728,7 @@
       // So instead of storing them in the static fBuiltInRegistry,
       //   store them in local data fUserDefinedRegistry
       if (fUserDefinedRegistry == 0)
  -        fUserDefinedRegistry = new (fMemoryManager) RefHashTableOf<DatatypeValidator>(29);
  +        fUserDefinedRegistry = new (fMemoryManager) RefHashTableOf<DatatypeValidator>(29, fMemoryManager);
   
       if (!getDatatypeValidator(XMLUni::fgIDRefsString)) {
   
  @@ -825,7 +828,7 @@
           if (isUserDefined) {
   
               if (!fUserDefinedRegistry) {
  -                fUserDefinedRegistry = new (fMemoryManager) RefHashTableOf<DatatypeValidator>(29);
  +                fUserDefinedRegistry = new (fMemoryManager) RefHashTableOf<DatatypeValidator>(29, fMemoryManager);
               }
   
               fUserDefinedRegistry->put((void *)typeName, datatypeValidator);
  @@ -863,7 +866,7 @@
           if (userDefined) {
   
               if (!fUserDefinedRegistry) {
  -                fUserDefinedRegistry = new (fMemoryManager) RefHashTableOf<DatatypeValidator>(29);
  +                fUserDefinedRegistry = new (fMemoryManager) RefHashTableOf<DatatypeValidator>(29, fMemoryManager);
               }
   
               fUserDefinedRegistry->put((void *)typeName, datatypeValidator);
  
  
  
  1.5       +5 -2      xml-xerces/c/src/xercesc/validators/datatype/DateDatatypeValidator.cpp
  
  Index: DateDatatypeValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DateDatatypeValidator.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DateDatatypeValidator.cpp	15 May 2003 18:53:26 -0000	1.4
  +++ DateDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/15 18:53:26  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -124,7 +127,7 @@
   //
   XMLDateTime* DateDatatypeValidator::parse(const XMLCh* const content)
   {
  -    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content);
  +    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content, fMemoryManager);
   
       try
       {
  
  
  
  1.5       +5 -2      xml-xerces/c/src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp
  
  Index: DateTimeDatatypeValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DateTimeDatatypeValidator.cpp	15 May 2003 18:53:26 -0000	1.4
  +++ DateTimeDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/15 18:53:26  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -124,7 +127,7 @@
   //
   XMLDateTime* DateTimeDatatypeValidator::parse(const XMLCh* const content)
   {
  -    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content);
  +    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content, fMemoryManager);
   
       try
       {
  
  
  
  1.7       +5 -2      xml-xerces/c/src/xercesc/validators/datatype/DateTimeValidator.cpp
  
  Index: DateTimeValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DateTimeValidator.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DateTimeValidator.cpp	16 May 2003 06:01:57 -0000	1.6
  +++ DateTimeValidator.cpp	18 May 2003 14:02:07 -0000	1.7
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.7  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.6  2003/05/16 06:01:57  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -348,7 +351,7 @@
           return;
   
       int enumLength = fStrEnumeration->size();
  -    fEnumeration = new (fMemoryManager) RefVectorOf<XMLNumber>(enumLength, true);
  +    fEnumeration = new (fMemoryManager) RefVectorOf<XMLNumber>(enumLength, true, fMemoryManager);
       fEnumerationInherited = false;
   
       for ( int i = 0; i < enumLength; i++)
  
  
  
  1.5       +5 -2      xml-xerces/c/src/xercesc/validators/datatype/DayDatatypeValidator.cpp
  
  Index: DayDatatypeValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DayDatatypeValidator.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DayDatatypeValidator.cpp	15 May 2003 18:53:26 -0000	1.4
  +++ DayDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/15 18:53:26  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -124,7 +127,7 @@
   //
   XMLDateTime* DayDatatypeValidator::parse(const XMLCh* const content)
   {
  -    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content);
  +    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content, fMemoryManager);
   
       try
       {
  
  
  
  1.11      +12 -9     xml-xerces/c/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp
  
  Index: DecimalDatatypeValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- DecimalDatatypeValidator.cpp	16 May 2003 06:01:57 -0000	1.10
  +++ DecimalDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.11
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.11  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.10  2003/05/16 06:01:57  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -190,8 +193,8 @@
   int DecimalDatatypeValidator::compare(const XMLCh* const lValue
                                       , const XMLCh* const rValue)
   {
  -    XMLBigDecimal lObj(lValue);
  -    XMLBigDecimal rObj(rValue);
  +    XMLBigDecimal lObj(lValue, fMemoryManager);
  +    XMLBigDecimal rObj(rValue, fMemoryManager);
   
       return compareValues(&lObj, &rObj);
   }
  @@ -409,22 +412,22 @@
   
   void  DecimalDatatypeValidator::setMaxInclusive(const XMLCh* const value)
   {
  -    fMaxInclusive = new (fMemoryManager) XMLBigDecimal(value);
  +    fMaxInclusive = new (fMemoryManager) XMLBigDecimal(value, fMemoryManager);
   }
   
   void  DecimalDatatypeValidator::setMaxExclusive(const XMLCh* const value)
   {
  -    fMaxExclusive = new (fMemoryManager) XMLBigDecimal(value);
  +    fMaxExclusive = new (fMemoryManager) XMLBigDecimal(value, fMemoryManager);
   }
   
   void  DecimalDatatypeValidator::setMinInclusive(const XMLCh* const value)
   {
  -    fMinInclusive = new (fMemoryManager) XMLBigDecimal(value);
  +    fMinInclusive = new (fMemoryManager) XMLBigDecimal(value, fMemoryManager);
   }
   
   void  DecimalDatatypeValidator::setMinExclusive(const XMLCh* const value)
   {
  -    fMinExclusive = new (fMemoryManager) XMLBigDecimal(value);
  +    fMinExclusive = new (fMemoryManager) XMLBigDecimal(value, fMemoryManager);
   }
   
   void DecimalDatatypeValidator::setEnumeration()
  @@ -466,12 +469,12 @@
           checkContent(fStrEnumeration->elementAt(i), false);
       }
   
  -    fEnumeration = new (fMemoryManager) RefVectorOf<XMLNumber>(enumLength, true);
  +    fEnumeration = new (fMemoryManager) RefVectorOf<XMLNumber>(enumLength, true, fMemoryManager);
       fEnumerationInherited = false;
   
       for ( i = 0; i < enumLength; i++)
       {
  -        fEnumeration->insertElementAt(new (fMemoryManager) XMLBigDecimal(fStrEnumeration->elementAt(i)), i);
  +        fEnumeration->insertElementAt(new (fMemoryManager) XMLBigDecimal(fStrEnumeration->elementAt(i), fMemoryManager), i);
       }
   
   }
  @@ -518,7 +521,7 @@
           return;
   
       try {
  -        XMLBigDecimal theValue(content);
  +        XMLBigDecimal theValue(content, fMemoryManager);
           XMLBigDecimal *theData = &theValue;
   
           if (getEnumeration())
  
  
  
  1.6       +13 -10    xml-xerces/c/src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp
  
  Index: DoubleDatatypeValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DoubleDatatypeValidator.cpp	16 May 2003 06:01:57 -0000	1.5
  +++ DoubleDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.5  2003/05/16 06:01:57  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -129,8 +132,8 @@
   int DoubleDatatypeValidator::compare(const XMLCh* const lValue
                                      , const XMLCh* const rValue)
   {
  -    XMLDouble lObj(lValue);
  -    XMLDouble rObj(rValue);
  +    XMLDouble lObj(lValue, fMemoryManager);
  +    XMLDouble rObj(rValue, fMemoryManager);
   
       return compareValues(&lObj, &rObj);
   }
  @@ -184,22 +187,22 @@
   
   void  DoubleDatatypeValidator::setMaxInclusive(const XMLCh* const value)
   {
  -    fMaxInclusive = new (fMemoryManager) XMLDouble(value);
  +    fMaxInclusive = new (fMemoryManager) XMLDouble(value, fMemoryManager);
   }
   
   void  DoubleDatatypeValidator::setMaxExclusive(const XMLCh* const value)
   {
  -    fMaxExclusive = new (fMemoryManager) XMLDouble(value);
  +    fMaxExclusive = new (fMemoryManager) XMLDouble(value, fMemoryManager);
   }
   
   void  DoubleDatatypeValidator::setMinInclusive(const XMLCh* const value)
   {
  -    fMinInclusive = new (fMemoryManager) XMLDouble(value);
  +    fMinInclusive = new (fMemoryManager) XMLDouble(value, fMemoryManager);
   }
   
   void  DoubleDatatypeValidator::setMinExclusive(const XMLCh* const value)
   {
  -    fMinExclusive = new (fMemoryManager) XMLDouble(value);
  +    fMinExclusive = new (fMemoryManager) XMLDouble(value, fMemoryManager);
   }
   
   void  DoubleDatatypeValidator::setEnumeration()
  @@ -242,12 +245,12 @@
           checkContent(fStrEnumeration->elementAt(i), false);
       }
   
  -    fEnumeration = new (fMemoryManager) RefVectorOf<XMLNumber>(enumLength, true);
  +    fEnumeration = new (fMemoryManager) RefVectorOf<XMLNumber>(enumLength, true, fMemoryManager);
       fEnumerationInherited = false;
   
       for ( i = 0; i < enumLength; i++)
       {
  -        fEnumeration->insertElementAt(new (fMemoryManager) XMLDouble(fStrEnumeration->elementAt(i)), i);
  +        fEnumeration->insertElementAt(new (fMemoryManager) XMLDouble(fStrEnumeration->elementAt(i), fMemoryManager), i);
       }
   }
   
  @@ -292,7 +295,7 @@
           return;
   
       try {
  -        XMLDouble theValue(content);
  +        XMLDouble theValue(content, fMemoryManager);
           XMLDouble *theData = &theValue;
   
           if (getEnumeration())
  
  
  
  1.5       +5 -2      xml-xerces/c/src/xercesc/validators/datatype/DurationDatatypeValidator.cpp
  
  Index: DurationDatatypeValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DurationDatatypeValidator.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DurationDatatypeValidator.cpp	15 May 2003 18:53:26 -0000	1.4
  +++ DurationDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/15 18:53:26  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -124,7 +127,7 @@
   //
   XMLDateTime* DurationDatatypeValidator::parse(const XMLCh* const content)
   {
  -    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content);
  +    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content, fMemoryManager);
   
       try
       {
  
  
  
  1.6       +13 -10    xml-xerces/c/src/xercesc/validators/datatype/FloatDatatypeValidator.cpp
  
  Index: FloatDatatypeValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/FloatDatatypeValidator.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FloatDatatypeValidator.cpp	16 May 2003 06:01:57 -0000	1.5
  +++ FloatDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.5  2003/05/16 06:01:57  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -131,8 +134,8 @@
   int FloatDatatypeValidator::compare(const XMLCh* const lValue
                                     , const XMLCh* const rValue)
   {
  -    XMLFloat lObj(lValue);
  -    XMLFloat rObj(rValue);
  +    XMLFloat lObj(lValue, fMemoryManager);
  +    XMLFloat rObj(rValue, fMemoryManager);
   
       return compareValues(&lObj, &rObj);
   }
  @@ -186,22 +189,22 @@
   
   void  FloatDatatypeValidator::setMaxInclusive(const XMLCh* const value)
   {
  -    fMaxInclusive = new (fMemoryManager) XMLFloat(value);
  +    fMaxInclusive = new (fMemoryManager) XMLFloat(value, fMemoryManager);
   }
   
   void  FloatDatatypeValidator::setMaxExclusive(const XMLCh* const value)
   {
  -    fMaxExclusive = new (fMemoryManager) XMLFloat(value);
  +    fMaxExclusive = new (fMemoryManager) XMLFloat(value, fMemoryManager);
   }
   
   void  FloatDatatypeValidator::setMinInclusive(const XMLCh* const value)
   {
  -    fMinInclusive = new (fMemoryManager) XMLFloat(value);
  +    fMinInclusive = new (fMemoryManager) XMLFloat(value, fMemoryManager);
   }
   
   void  FloatDatatypeValidator::setMinExclusive(const XMLCh* const value)
   {
  -    fMinExclusive = new (fMemoryManager) XMLFloat(value);
  +    fMinExclusive = new (fMemoryManager) XMLFloat(value, fMemoryManager);
   }
   
   void  FloatDatatypeValidator::setEnumeration()
  @@ -244,12 +247,12 @@
           checkContent(fStrEnumeration->elementAt(i), false);
       }
   
  -    fEnumeration = new (fMemoryManager) RefVectorOf<XMLNumber>(enumLength, true);
  +    fEnumeration = new (fMemoryManager) RefVectorOf<XMLNumber>(enumLength, true,  fMemoryManager);
       fEnumerationInherited = false;
   
       for ( i = 0; i < enumLength; i++)
       {
  -        fEnumeration->insertElementAt(new (fMemoryManager) XMLFloat(fStrEnumeration->elementAt(i)), i);
  +        fEnumeration->insertElementAt(new (fMemoryManager) XMLFloat(fStrEnumeration->elementAt(i), fMemoryManager), i);
       }
   }
   
  @@ -293,7 +296,7 @@
           return;
   
       try {
  -        XMLFloat theValue(content);
  +        XMLFloat theValue(content, fMemoryManager);
           XMLFloat *theData = &theValue;
   
           if (getEnumeration() != 0)
  
  
  
  1.5       +5 -2      xml-xerces/c/src/xercesc/validators/datatype/MonthDatatypeValidator.cpp
  
  Index: MonthDatatypeValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/MonthDatatypeValidator.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MonthDatatypeValidator.cpp	15 May 2003 18:53:26 -0000	1.4
  +++ MonthDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/15 18:53:26  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -124,7 +127,7 @@
   //
   XMLDateTime* MonthDatatypeValidator::parse(const XMLCh* const content)
   {
  -    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content);
  +    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content, fMemoryManager);
   
       try
       {
  
  
  
  1.5       +5 -2      xml-xerces/c/src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp
  
  Index: MonthDayDatatypeValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MonthDayDatatypeValidator.cpp	15 May 2003 18:53:26 -0000	1.4
  +++ MonthDayDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/15 18:53:26  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -124,7 +127,7 @@
   //
   XMLDateTime* MonthDayDatatypeValidator::parse(const XMLCh* const content)
   {
  -    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content);
  +    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content, fMemoryManager);
   
       try
       {
  
  
  
  1.5       +5 -2      xml-xerces/c/src/xercesc/validators/datatype/TimeDatatypeValidator.cpp
  
  Index: TimeDatatypeValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/TimeDatatypeValidator.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TimeDatatypeValidator.cpp	15 May 2003 18:53:27 -0000	1.4
  +++ TimeDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/15 18:53:27  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -124,7 +127,7 @@
   //
   XMLDateTime* TimeDatatypeValidator::parse(const XMLCh* const content)
   {
  -    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content);
  +    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content, fMemoryManager);
   
       try
       {
  
  
  
  1.5       +5 -2      xml-xerces/c/src/xercesc/validators/datatype/YearDatatypeValidator.cpp
  
  Index: YearDatatypeValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/YearDatatypeValidator.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- YearDatatypeValidator.cpp	15 May 2003 18:53:27 -0000	1.4
  +++ YearDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/15 18:53:27  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -124,7 +127,7 @@
   //
   XMLDateTime* YearDatatypeValidator::parse(const XMLCh* const content)
   {
  -    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content);
  +    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content, fMemoryManager);
   
       try
       {
  
  
  
  1.5       +5 -2      xml-xerces/c/src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp
  
  Index: YearMonthDatatypeValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- YearMonthDatatypeValidator.cpp	15 May 2003 18:53:27 -0000	1.4
  +++ YearMonthDatatypeValidator.cpp	18 May 2003 14:02:07 -0000	1.5
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/15 18:53:27  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -124,7 +127,7 @@
   //
   XMLDateTime* YearMonthDatatypeValidator::parse(const XMLCh* const content)
   {
  -    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content);
  +    XMLDateTime *pRetDate = new (fMemoryManager) XMLDateTime(content, fMemoryManager);
   
       try
       {
  
  
  
  1.9       +118 -22   xml-xerces/c/src/xercesc/validators/schema/ComplexTypeInfo.cpp
  
  Index: ComplexTypeInfo.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/ComplexTypeInfo.cpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ComplexTypeInfo.cpp	16 May 2003 21:43:21 -0000	1.8
  +++ ComplexTypeInfo.cpp	18 May 2003 14:02:07 -0000	1.9
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.9  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.8  2003/05/16 21:43:21  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -284,7 +287,7 @@
           if (!fAttDefs)
               faultInAttDefList();
   
  -        ((ComplexTypeInfo*)this)->fAttList = new SchemaAttDefList(fAttDefs);
  +        ((ComplexTypeInfo*)this)->fAttList = new (fMemoryManager) SchemaAttDefList(fAttDefs);
       }
   
       // Reset it before we return it
  @@ -398,7 +401,7 @@
   {
       // Use a hash modulus of 29 and tell it owns its elements
       ((ComplexTypeInfo*)this)->fAttDefs =
  -                    new (fMemoryManager) RefHash2KeysTableOf<SchemaAttDef>(29, true);
  +        new (fMemoryManager) RefHash2KeysTableOf<SchemaAttDef>(29, true, fMemoryManager);
   }
   
   XMLCh* ComplexTypeInfo::formatContentModel() const
  @@ -438,7 +441,7 @@
   XMLContentModel* ComplexTypeInfo::makeContentModel(const bool checkUPA, ContentSpecNode* const specNode)
   {
       if ((specNode || fContentSpec) && !fSpecNodesToDelete) {
  -        fSpecNodesToDelete = new (fMemoryManager) RefVectorOf<ContentSpecNode>(8);
  +        fSpecNodesToDelete = new (fMemoryManager) RefVectorOf<ContentSpecNode>(8, true, fMemoryManager);
       }
   
       // expand the content spec first
  @@ -555,6 +558,7 @@
               , specNode->getElement()
               , 0
               , ContentSpecNode::Leaf
  +            , fMemoryManager
           );
       }
        else if ((specType == ContentSpecNode::Choice)
  @@ -574,6 +578,7 @@
                   , specNode->getFirst()->getElement()
                   , specNode->getSecond()->getElement()
                   , specType
  +                , fMemoryManager
               );
           }
       }
  @@ -594,6 +599,7 @@
                   , specNode->getFirst()->getElement()
                   , 0
                   , specType
  +                , fMemoryManager
               );
           }
           else if (specNode->getFirst()->getType() == ContentSpecNode::All)
  @@ -698,47 +704,114 @@
       }
       else if (minOccurs == 0 && maxOccurs == 1) {
   
  -        retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::ZeroOrOne, retNode, 0);
  +        retNode = new (fMemoryManager) ContentSpecNode
  +        (
  +            ContentSpecNode::ZeroOrOne
  +            , retNode
  +            , 0
  +            , true
  +            , true
  +            , fMemoryManager
  +        );
       }
       else if (minOccurs == 0 && maxOccurs == -1) {
  -        retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::ZeroOrMore, retNode, 0);
  +        retNode = new (fMemoryManager) ContentSpecNode
  +        (
  +            ContentSpecNode::ZeroOrMore
  +            , retNode
  +            , 0
  +            , true
  +            , true
  +            , fMemoryManager
  +        );
       }
       else if (minOccurs == 1 && maxOccurs == -1) {
  -        retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::OneOrMore, retNode, 0);
  +        retNode = new (fMemoryManager) ContentSpecNode
  +        (
  +            ContentSpecNode::OneOrMore
  +            , retNode
  +            , 0
  +            , true
  +            , true
  +            , fMemoryManager
  +        );
       }
       else if (maxOccurs == -1) {
   
  -        retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::OneOrMore, retNode, 0);
  +        retNode = new (fMemoryManager) ContentSpecNode
  +        (
  +            ContentSpecNode::OneOrMore
  +            , retNode
  +            , 0
  +            , true
  +            , true
  +            , fMemoryManager
  +        );
   
           for (int i=0; i < (int)(minOccurs-1); i++) {
  -            retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence,
  -                                          saveNode, retNode, false);
  +            retNode = new (fMemoryManager) ContentSpecNode
  +            (
  +                ContentSpecNode::Sequence
  +                , saveNode
  +                , retNode
  +                , false
  +                , true
  +                , fMemoryManager
  +            );
           }
       }
       else {
   
           if (minOccurs == 0) {
   
  -            ContentSpecNode* optional =
  -                new (fMemoryManager) ContentSpecNode(ContentSpecNode::ZeroOrOne, saveNode, 0);
  +            ContentSpecNode* optional = new (fMemoryManager) ContentSpecNode
  +            (
  +                ContentSpecNode::ZeroOrOne
  +                , saveNode
  +                , 0
  +                , true
  +                , true
  +                , fMemoryManager
  +            );
   
               retNode = optional;
   
               for (int i=0; i < (int)(maxOccurs-minOccurs-1); i++) {
  -                retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence,
  -                                              retNode, optional, true, false);
  +                retNode = new (fMemoryManager) ContentSpecNode
  +                (
  +                    ContentSpecNode::Sequence
  +                    , retNode
  +                    , optional
  +                    , true
  +                    , false
  +                    , fMemoryManager
  +                );
               }
           }
           else {
   
               if (minOccurs > 1) {
   
  -                retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence,
  -                                              retNode, saveNode, true, false);
  +                retNode = new (fMemoryManager) ContentSpecNode
  +                (
  +                    ContentSpecNode::Sequence
  +                    , retNode
  +                    , saveNode
  +                    , true
  +                    , false
  +                    , fMemoryManager
  +                );
   
                   for (int i=1; i < (int)(minOccurs-1); i++) {
  -                    retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence,
  -                                                  retNode, saveNode, true, false);
  +                    retNode = new (fMemoryManager) ContentSpecNode
  +                    (
  +                        ContentSpecNode::Sequence
  +                        , retNode
  +                        , saveNode
  +                        , true
  +                        , false
  +                        , fMemoryManager
  +                    );
                   }
               }
   
  @@ -746,14 +819,37 @@
   
               if (counter > 0) {
   
  -                ContentSpecNode* optional = new (fMemoryManager) ContentSpecNode(ContentSpecNode::ZeroOrOne, saveNode, 0, false);
  -
  -                retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence, retNode, optional);
  +                ContentSpecNode* optional = new (fMemoryManager) ContentSpecNode
  +                (
  +                    ContentSpecNode::ZeroOrOne
  +                    , saveNode
  +                    , 0
  +                    , false
  +                    , true
  +                    , fMemoryManager
  +                );
  +
  +                retNode = new (fMemoryManager) ContentSpecNode
  +                (
  +                    ContentSpecNode::Sequence
  +                    , retNode
  +                    , optional
  +                    , true
  +                    , true
  +                    , fMemoryManager
  +                );
   
                   for (int j=1; j < counter; j++) {
   
  -                    retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence,
  -					                              retNode, optional, true, false);
  +                    retNode = new (fMemoryManager) ContentSpecNode
  +                    (
  +                        ContentSpecNode::Sequence
  +					    , retNode
  +                        , optional
  +                        , true
  +                        , false
  +                        , fMemoryManager
  +                    );
                   }
               }
           }
  
  
  
  1.14      +2 -2      xml-xerces/c/src/xercesc/validators/schema/ComplexTypeInfo.hpp
  
  Index: ComplexTypeInfo.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/ComplexTypeInfo.hpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- ComplexTypeInfo.hpp	16 May 2003 21:43:21 -0000	1.13
  +++ ComplexTypeInfo.hpp	18 May 2003 14:02:07 -0000	1.14
  @@ -513,7 +513,7 @@
   inline void ComplexTypeInfo::addElement(SchemaElementDecl* const elem) {
   
       if (!fElements) {
  -        fElements = new (fMemoryManager) RefVectorOf<SchemaElementDecl>(8, false);
  +        fElements = new (fMemoryManager) RefVectorOf<SchemaElementDecl>(8, false, fMemoryManager);
       }
       else if (fElements->containsElement(elem)) {
           return;
  
  
  
  1.5       +4 -0      xml-xerces/c/src/xercesc/validators/schema/NamespaceScope.cpp
  
  Index: NamespaceScope.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/NamespaceScope.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- NamespaceScope.cpp	16 May 2003 21:43:21 -0000	1.4
  +++ NamespaceScope.cpp	18 May 2003 14:02:07 -0000	1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/16 21:43:21  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -96,6 +99,7 @@
       fEmptyNamespaceId(0)
       , fStackCapacity(8)
       , fStackTop(0)
  +    , fPrefixPool(109, manager)
       , fStack(0)
       , fMemoryManager(manager)
   {
  
  
  
  1.6       +9 -5      xml-xerces/c/src/xercesc/validators/schema/SchemaAttDef.cpp
  
  Index: SchemaAttDef.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaAttDef.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- SchemaAttDef.cpp	16 May 2003 21:43:21 -0000	1.5
  +++ SchemaAttDef.cpp	18 May 2003 14:02:07 -0000	1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.5  2003/05/16 21:43:21  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -133,7 +136,7 @@
       , fValidity(PSVIDefs::UNKNOWN)
       , fValidation(PSVIDefs::NONE)
   {
  -    fAttName = new QName(prefix, localPart, uriId);
  +    fAttName = new (manager) QName(prefix, localPart, uriId, manager);
   }
   
   SchemaAttDef::SchemaAttDef( const XMLCh* const           prefix
  @@ -154,7 +157,7 @@
       , fValidity(PSVIDefs::UNKNOWN)
       , fValidation(PSVIDefs::NONE)
   {
  -    fAttName = new QName(prefix, localPart, uriId);
  +    fAttName = new (manager) QName(prefix, localPart, uriId, manager);
   }
   
   SchemaAttDef::SchemaAttDef(const SchemaAttDef* other) :
  @@ -172,11 +175,12 @@
       , fValidation(other->fValidation)
   {
       QName* otherName = other->getAttName();
  -    fAttName = new QName(otherName->getPrefix(),
  -                         otherName->getLocalPart(), otherName->getURI());
  +    fAttName = new (getMemoryManager()) QName(otherName->getPrefix(),
  +                         otherName->getLocalPart(), otherName->getURI(),
  +                         getMemoryManager());
   
       if (other->fNamespaceList && other->fNamespaceList->size()) {
  -        fNamespaceList = new ValueVectorOf<unsigned int>(*(other->fNamespaceList));
  +        fNamespaceList = new (getMemoryManager()) ValueVectorOf<unsigned int>(*(other->fNamespaceList));
       }
   }
   
  
  
  
  1.6       +4 -1      xml-xerces/c/src/xercesc/validators/schema/SchemaAttDef.hpp
  
  Index: SchemaAttDef.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaAttDef.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- SchemaAttDef.hpp	16 May 2003 21:43:21 -0000	1.5
  +++ SchemaAttDef.hpp	18 May 2003 14:02:07 -0000	1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.5  2003/05/16 21:43:21  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -461,7 +464,7 @@
               *fNamespaceList = *toSet;
           }
           else {
  -            fNamespaceList = new ValueVectorOf<unsigned int>(*toSet);
  +            fNamespaceList = new (getMemoryManager()) ValueVectorOf<unsigned int>(*toSet);
           }
       }
       else  {
  
  
  
  1.3       +5 -2      xml-xerces/c/src/xercesc/validators/schema/SchemaAttDefList.cpp
  
  Index: SchemaAttDefList.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaAttDefList.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SchemaAttDefList.cpp	4 Nov 2002 14:49:41 -0000	1.2
  +++ SchemaAttDefList.cpp	18 May 2003 14:02:07 -0000	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.3  2003/05/18 14:02:07  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.2  2002/11/04 14:49:41  tng
    * C++ Namespace Support.
    *
  @@ -113,7 +116,7 @@
   XMLAttDef* SchemaAttDefList::findAttDef(const  unsigned long   uriID
                                       , const XMLCh* const    attName)
   {
  -   QName tempAtt(attName, uriID);
  +   QName tempAtt(attName, uriID, XMLPlatformUtils::fgMemoryManager);
      return fList->get((void*)tempAtt.getLocalPart(), uriID);
   }
   
  @@ -122,7 +125,7 @@
   SchemaAttDefList::findAttDef(  const   unsigned long   uriID
                               , const XMLCh* const    attName) const
   {
  -   QName tempAtt(attName, uriID);
  +   QName tempAtt(attName, uriID, XMLPlatformUtils::fgMemoryManager);
      return fList->get((void*)tempAtt.getLocalPart(), uriID);
   }
   
  
  
  
  1.10      +5 -1      xml-xerces/c/src/xercesc/validators/schema/SchemaElementDecl.cpp
  
  Index: SchemaElementDecl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaElementDecl.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SchemaElementDecl.cpp	16 May 2003 21:43:21 -0000	1.9
  +++ SchemaElementDecl.cpp	18 May 2003 14:02:08 -0000	1.10
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.10  2003/05/18 14:02:08  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.9  2003/05/16 21:43:21  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -271,7 +274,8 @@
               // If no att list exist yet, then create one
               if (!fAttDefs) {
                   // Use a hash modulus of 29 and tell it owns its elements
  -                ((SchemaElementDecl*)this)->fAttDefs = new (getMemoryManager()) RefHash2KeysTableOf<SchemaAttDef>(29, true);
  +                ((SchemaElementDecl*)this)->fAttDefs =
  +                    new (getMemoryManager()) RefHash2KeysTableOf<SchemaAttDef>(29, true, getMemoryManager());
               }
   
               retVal = fAttDefs->get(baseName, uriId);
  
  
  
  1.11      +4 -1      xml-xerces/c/src/xercesc/validators/schema/SchemaElementDecl.hpp
  
  Index: SchemaElementDecl.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaElementDecl.hpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- SchemaElementDecl.hpp	16 May 2003 21:43:21 -0000	1.10
  +++ SchemaElementDecl.hpp	18 May 2003 14:02:08 -0000	1.11
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.11  2003/05/18 14:02:08  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.10  2003/05/16 21:43:21  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -900,7 +903,7 @@
   SchemaElementDecl::addIdentityConstraint(IdentityConstraint* const ic) {
   
       if (!fIdentityConstraints) {
  -        fIdentityConstraints = new RefVectorOf<IdentityConstraint>(16);
  +        fIdentityConstraints = new (getMemoryManager()) RefVectorOf<IdentityConstraint>(16, true, getMemoryManager());
       }
   
       fIdentityConstraints->addElement(ic);
  
  
  
  1.5       +7 -4      xml-xerces/c/src/xercesc/validators/schema/SchemaGrammar.cpp
  
  Index: SchemaGrammar.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaGrammar.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SchemaGrammar.cpp	15 May 2003 18:57:27 -0000	1.4
  +++ SchemaGrammar.cpp	18 May 2003 14:02:08 -0000	1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:08  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/15 18:57:27  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -143,13 +146,13 @@
       //  <TBD> Investigate what the optimum values would be for the various
       //  pools.
       //
  -    fElemDeclPool = new (fMemoryManager) RefHash3KeysIdPool<SchemaElementDecl>(109);
  +    fElemDeclPool = new (fMemoryManager) RefHash3KeysIdPool<SchemaElementDecl>(109, 128, fMemoryManager);
   
       try {
  -        fElemNonDeclPool = new (fMemoryManager) RefHash3KeysIdPool<SchemaElementDecl>(29);
  +        fElemNonDeclPool = new (fMemoryManager) RefHash3KeysIdPool<SchemaElementDecl>(29, 128, fMemoryManager);
           fGroupElemDeclPool = new (fMemoryManager) RefHash3KeysIdPool<SchemaElementDecl>(109, false);
  -        fNotationDeclPool = new NameIdPool<XMLNotationDecl>(109);
  -        fIDRefList = new (fMemoryManager) RefHashTableOf<XMLRefInfo>(29);
  +        fNotationDeclPool = new (fMemoryManager) NameIdPool<XMLNotationDecl>(109, 128, fMemoryManager);
  +        fIDRefList = new (fMemoryManager) RefHashTableOf<XMLRefInfo>(29, fMemoryManager);
           fDatatypeRegistry.expandRegistryToFullSchemaSet();
   
           //
  
  
  
  1.32      +8 -5      xml-xerces/c/src/xercesc/validators/schema/SchemaValidator.cpp
  
  Index: SchemaValidator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaValidator.cpp,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- SchemaValidator.cpp	16 May 2003 21:43:21 -0000	1.31
  +++ SchemaValidator.cpp	18 May 2003 14:02:08 -0000	1.32
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.32  2003/05/18 14:02:08  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.31  2003/05/16 21:43:21  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -275,7 +278,7 @@
       , fNil(false)
       , fTypeStack(0)
   {
  -    fTypeStack = new (fMemoryManager) ValueStackOf<ComplexTypeInfo*>(8);
  +    fTypeStack = new (fMemoryManager) ValueStackOf<ComplexTypeInfo*>(8, fMemoryManager);
   }
   
   SchemaValidator::~SchemaValidator()
  @@ -1374,8 +1377,8 @@
   
       ContentSpecNode* curSpecNode = curNode;
       ContentSpecNode* baseSpecNode = baseNode;
  -    ValueVectorOf<ContentSpecNode*> curVector(8);
  -    ValueVectorOf<ContentSpecNode*> baseVector(8);
  +    ValueVectorOf<ContentSpecNode*> curVector(8, fMemoryManager);
  +    ValueVectorOf<ContentSpecNode*> baseVector(8, fMemoryManager);
       ContentSpecNode::NodeTypes curNodeType = curSpecNode->getType();
       ContentSpecNode::NodeTypes baseNodeType = baseSpecNode->getType();
   
  @@ -1864,11 +1867,11 @@
                                          const ComplexTypeInfo* const baseInfo) {
   
       ContentSpecNode::NodeTypes baseType = baseSpecNode->getType();
  -    ValueVectorOf<ContentSpecNode*> derivedNodes(1);
  +    ValueVectorOf<ContentSpecNode*> derivedNodes(1, fMemoryManager);
       bool toLax = false;
   
       //Treat the element as if it were in a group of the same variety as base
  -    ContentSpecNode derivedGroupNode(baseType, derivedSpecNode, 0, false);
  +    ContentSpecNode derivedGroupNode(baseType, derivedSpecNode, 0, false, true, fMemoryManager);
   
       derivedNodes.addElement(derivedSpecNode);
   
  
  
  
  1.17      +4 -1      xml-xerces/c/src/xercesc/validators/schema/SchemaValidator.hpp
  
  Index: SchemaValidator.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaValidator.hpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- SchemaValidator.hpp	16 May 2003 21:43:21 -0000	1.16
  +++ SchemaValidator.hpp	18 May 2003 14:02:08 -0000	1.17
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.17  2003/05/18 14:02:08  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.16  2003/05/16 21:43:21  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -407,7 +410,7 @@
          , const unsigned int        uriId)
   {
       delete fXsiType;
  -    fXsiType = new (fMemoryManager) QName(prefix, localPart, uriId);
  +    fXsiType = new (fMemoryManager) QName(prefix, localPart, uriId, fMemoryManager);
   }
   
   inline void SchemaValidator::setNillable(bool isNil) {
  
  
  
  1.74      +190 -79   xml-xerces/c/src/xercesc/validators/schema/TraverseSchema.cpp
  
  Index: TraverseSchema.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/TraverseSchema.cpp,v
  retrieving revision 1.73
  retrieving revision 1.74
  diff -u -r1.73 -r1.74
  --- TraverseSchema.cpp	16 May 2003 21:43:21 -0000	1.73
  +++ TraverseSchema.cpp	18 May 2003 14:02:08 -0000	1.74
  @@ -322,7 +322,7 @@
   
       if (fComplexTypeRegistry == 0 ) {
   
  -        fComplexTypeRegistry = new (fMemoryManager) RefHashTableOf<ComplexTypeInfo>(29);
  +        fComplexTypeRegistry = new (fMemoryManager) RefHashTableOf<ComplexTypeInfo>(29, fMemoryManager);
           fSchemaGrammar->setComplexTypeRegistry(fComplexTypeRegistry);
       }
   
  @@ -330,7 +330,7 @@
   
       if (fGroupRegistry == 0 ) {
   
  -        fGroupRegistry = new (fMemoryManager) RefHashTableOf<XercesGroupInfo>(13);
  +        fGroupRegistry = new (fMemoryManager) RefHashTableOf<XercesGroupInfo>(13, fMemoryManager);
           fSchemaGrammar->setGroupInfoRegistry(fGroupRegistry);
       }
   
  @@ -338,7 +338,7 @@
   
       if (fAttGroupRegistry == 0 ) {
   
  -        fAttGroupRegistry = new (fMemoryManager) RefHashTableOf<XercesAttGroupInfo>(13);
  +        fAttGroupRegistry = new (fMemoryManager) RefHashTableOf<XercesAttGroupInfo>(13, fMemoryManager);
           fSchemaGrammar->setAttGroupInfoRegistry(fAttGroupRegistry);
       }
   
  @@ -346,7 +346,7 @@
   
       if (fAttributeDeclRegistry == 0) {
   
  -        fAttributeDeclRegistry = new (fMemoryManager) RefHashTableOf<XMLAttDef>(29);
  +        fAttributeDeclRegistry = new (fMemoryManager) RefHashTableOf<XMLAttDef>(29, fMemoryManager);
           fSchemaGrammar->setAttributeDeclRegistry(fAttributeDeclRegistry);
       }
   
  @@ -363,7 +363,7 @@
   
       if (!fValidSubstitutionGroups) {
   
  -        fValidSubstitutionGroups = new (fMemoryManager) RefHash2KeysTableOf<ElemVector>(29);
  +        fValidSubstitutionGroups = new (fMemoryManager) RefHash2KeysTableOf<ElemVector>(29, fMemoryManager);
           fSchemaGrammar->setValidSubstitutionGroups(fValidSubstitutionGroups);
       }
   
  @@ -810,7 +810,7 @@
       }
   
       if (!fRedefineComponents) {
  -        fRedefineComponents = new (fMemoryManager) RefHash2KeysTableOf<XMLCh>(13, false);
  +        fRedefineComponents = new (fMemoryManager) RefHash2KeysTableOf<XMLCh>(13, (bool) false, fMemoryManager);
       }
   
       SchemaInfo* redefinedInfo = fSchemaInfo;
  @@ -888,7 +888,12 @@
                   continue;
               }
   
  -            contentSpecNode = new (fMemoryManager) ContentSpecNode(eltQName, false);
  +            contentSpecNode = new (fMemoryManager) ContentSpecNode
  +            (
  +                eltQName
  +                , false
  +                , fMemoryManager
  +            );
               seeParticle = true;
           }
           else if (XMLString::equals(childName, SchemaSymbols::fgELT_GROUP)) {
  @@ -948,13 +953,29 @@
               right = contentSpecNode;
           }
           else {
  -            left = new (fMemoryManager) ContentSpecNode((ContentSpecNode::NodeTypes) modelGroupType, left, right);
  +            left = new (fMemoryManager) ContentSpecNode
  +            (
  +                (ContentSpecNode::NodeTypes) modelGroupType
  +                , left
  +                , right
  +                , true
  +                , true
  +                , fMemoryManager
  +            );
               right = contentSpecNode;
           }
       }
   
       if (hadContent) {
  -        left = new (fMemoryManager) ContentSpecNode((ContentSpecNode::NodeTypes) modelGroupType, left, right);
  +        left = new (fMemoryManager) ContentSpecNode
  +        (
  +            (ContentSpecNode::NodeTypes) modelGroupType
  +            , left
  +            , right
  +            , true
  +            , true
  +            , fMemoryManager
  +        );
       }
   
       return left;
  @@ -1181,7 +1202,7 @@
   
           if (fFullConstraintChecking) {
   
  -            XSDLocator* aLocator = new XSDLocator();
  +            XSDLocator* aLocator = new (fMemoryManager) XSDLocator();
               aLocator->setValues(fStringPool->getValueForId(fStringPool->addOrFind(fSchemaInfo->getCurrentSchemaURL())),
                                   0, ((XSDElementNSImpl*) elem)->getLineNo(),
                                   ((XSDElementNSImpl*) elem)->getColumnNo());
  @@ -1429,7 +1450,7 @@
   
       if (fFullConstraintChecking) {
   
  -        XSDLocator* aLocator = new XSDLocator();
  +        XSDLocator* aLocator = new (fMemoryManager) XSDLocator();
   
           groupInfo->setLocator(aLocator);
           aLocator->setValues(fStringPool->getValueForId(fStringPool->addOrFind(fSchemaInfo->getCurrentSchemaURL())),
  @@ -1677,23 +1698,38 @@
   
       if ((!nameSpace || !*nameSpace)
           || XMLString::equals(nameSpace, SchemaSymbols::fgATTVAL_TWOPOUNDANY)) {
  -        retSpecNode = new (fMemoryManager) ContentSpecNode(new (fMemoryManager) QName(XMLUni::fgZeroLenString,
  -                                                    XMLUni::fgZeroLenString,
  -                                                    fEmptyNamespaceURI),
  -                                          false);
  +        retSpecNode = new (fMemoryManager) ContentSpecNode
  +        (
  +            new (fMemoryManager) QName
  +            (
  +                XMLUni::fgZeroLenString
  +                , XMLUni::fgZeroLenString
  +                , fEmptyNamespaceURI
  +                , fMemoryManager
  +            )
  +            , false
  +            , fMemoryManager
  +        );
           retSpecNode->setType(anyType);
       }
       else if (XMLString::equals(nameSpace, SchemaSymbols::fgATTVAL_TWOPOUNDOTHER)) {
  -        retSpecNode = new (fMemoryManager) ContentSpecNode(new (fMemoryManager) QName(XMLUni::fgZeroLenString,
  -                                                    XMLUni::fgZeroLenString,
  -                                                    fTargetNSURI),
  -                                          false);
  +        retSpecNode = new (fMemoryManager) ContentSpecNode
  +        (
  +            new (fMemoryManager) QName
  +            (
  +                XMLUni::fgZeroLenString
  +                , XMLUni::fgZeroLenString
  +                , fTargetNSURI, fMemoryManager
  +            )
  +            , false
  +            , fMemoryManager
  +        );
           retSpecNode->setType(anyOtherType);
       }
       else {
   
           BaseRefVectorOf<XMLCh>* nameSpaceTokens = XMLString::tokenizeString(nameSpace);
  -        ValueVectorOf<unsigned int> uriList(8);
  +        ValueVectorOf<unsigned int> uriList(8, fMemoryManager);
           ContentSpecNode* firstNode = 0;
           ContentSpecNode* secondNode = 0;
           unsigned int tokensSize = nameSpaceTokens->size();
  @@ -1726,17 +1762,32 @@
   
               uriList.addElement(uriIndex);
   
  -            firstNode = new (fMemoryManager) ContentSpecNode(new (fMemoryManager) QName(XMLUni::fgZeroLenString,
  -                                                      XMLUni::fgZeroLenString,
  -                                                      uriIndex),
  -                                            false);
  +            firstNode = new (fMemoryManager) ContentSpecNode
  +            (
  +                new (fMemoryManager) QName
  +                (
  +                    XMLUni::fgZeroLenString
  +                    , XMLUni::fgZeroLenString
  +                    , uriIndex, fMemoryManager
  +                )
  +                , false
  +                , fMemoryManager
  +            );
               firstNode->setType(anyLocalType);
   
               if (secondNode == 0) {
                   secondNode = firstNode;
               }
               else {
  -                secondNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::Choice, secondNode, firstNode);
  +                secondNode = new (fMemoryManager) ContentSpecNode
  +                (
  +                    ContentSpecNode::Choice
  +                    , secondNode
  +                    , firstNode
  +                    , true
  +                    , true
  +                    , fMemoryManager
  +                );
               }
           }
   
  @@ -1793,7 +1844,12 @@
                   continue;
               }
   
  -            contentSpecNode = new (fMemoryManager) ContentSpecNode(eltQName, false);
  +            contentSpecNode = new (fMemoryManager) ContentSpecNode
  +            (
  +                eltQName
  +                , false
  +                , fMemoryManager
  +            );
               checkMinMax(contentSpecNode, child, All_Element);
           }
           else {
  @@ -1811,13 +1867,29 @@
               right = contentSpecNode;
           }
           else {
  -            left = new (fMemoryManager) ContentSpecNode(ContentSpecNode::All, left, right);
  +            left = new (fMemoryManager) ContentSpecNode
  +            (
  +                ContentSpecNode::All
  +                , left
  +                , right
  +                , true
  +                , true
  +                , fMemoryManager
  +            );
               right = contentSpecNode;
           }
       }
   
       if (hadContent) {
  -        left = new (fMemoryManager) ContentSpecNode(ContentSpecNode::All, left, right);
  +        left = new (fMemoryManager) ContentSpecNode
  +        (
  +            ContentSpecNode::All
  +            , left
  +            , right
  +            , true
  +            , true
  +            , fMemoryManager
  +        );
       }
   
       return left;
  @@ -2223,7 +2295,7 @@
       if (topLevel) {
   
           if (fSchemaGrammar->getElemDecl(fTargetNSURI, name, 0, Grammar::TOP_LEVEL_SCOPE) != 0) {
  -            return new (fMemoryManager) QName(name, fTargetNSURI);
  +            return new (fMemoryManager) QName(name, fTargetNSURI, fMemoryManager);
           }
       }
   
  @@ -2470,14 +2542,14 @@
                                       else if (fSchemaInfo->circularImportExist(subsElemURI)) {
   
                                           aGrammar->getValidSubstitutionGroups()->put(
  -                                        subsElemBaseName, subsElemURI, new (fMemoryManager) ValueVectorOf<SchemaElementDecl*>(8));
  +                                        subsElemBaseName, subsElemURI, new (fMemoryManager) ValueVectorOf<SchemaElementDecl*>(8, fMemoryManager));
                                       }
                                   }
                               }
   
                               if (!subsElements) {
   
  -                                subsElements = new (fMemoryManager) ValueVectorOf<SchemaElementDecl*>(8);
  +                                subsElements = new (fMemoryManager) ValueVectorOf<SchemaElementDecl*>(8, fMemoryManager);
                                   fValidSubstitutionGroups->put(subsElemBaseName, subsElemURI, subsElements);
                               }
   
  @@ -2622,7 +2694,7 @@
               else {
   
                   if (!icNodes) {
  -                    icNodes = new (fMemoryManager) ValueVectorOf<DOMElement*>(8);
  +                    icNodes = new (fMemoryManager) ValueVectorOf<DOMElement*>(8, fMemoryManager);
                   }
   
                   icNodes->addElement(ic);
  @@ -2636,9 +2708,9 @@
   
               if (!fIC_ElementsNS) {
   
  -                fIC_ElementsNS = new (fMemoryManager) RefHashTableOf<ElemVector>(13);
  -                fIC_NamespaceDepthNS = new (fMemoryManager) RefHashTableOf<ValueVectorOf<unsigned int> >(13);
  -                fIC_NodeListNS = new (fMemoryManager) RefHashTableOf<ValueVectorOf<DOMElement*> >(29, true, new (fMemoryManager) HashPtr());
  +                fIC_ElementsNS = new (fMemoryManager) RefHashTableOf<ElemVector>(13, fMemoryManager);
  +                fIC_NamespaceDepthNS = new (fMemoryManager) RefHashTableOf<ValueVectorOf<unsigned int> >(13, fMemoryManager);
  +                fIC_NodeListNS = new (fMemoryManager) RefHashTableOf<ValueVectorOf<DOMElement*> >(29, true, new (fMemoryManager) HashPtr(), fMemoryManager);
               }
   
               if (fIC_ElementsNS->containsKey(fTargetNSURIString)) {
  @@ -2649,8 +2721,8 @@
   
               if (!fIC_Elements) {
   
  -                fIC_Elements = new (fMemoryManager) ValueVectorOf<SchemaElementDecl*>(8);
  -                fIC_NamespaceDepth = new (fMemoryManager) ValueVectorOf<unsigned int>(8);
  +                fIC_Elements = new (fMemoryManager) ValueVectorOf<SchemaElementDecl*>(8, fMemoryManager);
  +                fIC_NamespaceDepth = new (fMemoryManager) ValueVectorOf<unsigned int>(8, fMemoryManager);
                   fIC_ElementsNS->put((void*) fTargetNSURIString, fIC_Elements);
                   fIC_NamespaceDepthNS->put((void*) fTargetNSURIString, fIC_NamespaceDepth);
               }
  @@ -2919,7 +2991,7 @@
                   fAttributeCheck.checkAttributes(content, scope, this);
   
                   if (facets == 0) {
  -                    facets = new (fMemoryManager) RefHashTableOf<KVStringPair>(29, true);
  +                    facets = new (fMemoryManager) RefHashTableOf<KVStringPair>(29, true, fMemoryManager);
                   }
   
                   if (XMLString::equals(facetName, SchemaSymbols::fgELT_ENUMERATION)) {
  @@ -2929,7 +3001,7 @@
                       // to get the qualified name first before adding it to the
                       // enum buffer
                       if (!enums) {
  -                        enums = new (fMemoryManager) RefArrayVectorOf<XMLCh>(8, true);
  +                        enums = new (fMemoryManager) RefArrayVectorOf<XMLCh>(8, true, fMemoryManager);
                       }
   
                       if (baseValidator->getType() == DatatypeValidator::NOTATION) {
  @@ -2946,10 +3018,10 @@
                           fBuffer.set(uriStr);
                           fBuffer.append(chColon);
                           fBuffer.append(localPart);
  -                        enums->addElement(XMLString::replicate(fBuffer.getRawBuffer()));
  +                        enums->addElement(XMLString::replicate(fBuffer.getRawBuffer(), fMemoryManager));
                       }
                       else {
  -                        enums->addElement(XMLString::replicate(attValue));
  +                        enums->addElement(XMLString::replicate(attValue, fMemoryManager));
                       }
                   }
                   else if (XMLString::equals(facetName, SchemaSymbols::fgELT_PATTERN)) {
  @@ -2980,7 +3052,7 @@
                           else {
   
                               const XMLCh* facetStr = fStringPool->getValueForId(fStringPool->addOrFind(facetName));
  -                            facets->put((void*) facetStr, new (fMemoryManager) KVStringPair(facetStr, attValue));
  +                            facets->put((void*) facetStr, new (fMemoryManager) KVStringPair(facetStr, attValue, fMemoryManager));
                               checkFixedFacet(content, facetStr, baseValidator, fixedFlag);
                           }
                       }
  @@ -2997,14 +3069,14 @@
   
           if (!pattern.isEmpty()) {
               facets->put((void*) SchemaSymbols::fgELT_PATTERN,
  -                        new (fMemoryManager) KVStringPair(SchemaSymbols::fgELT_PATTERN, pattern.getRawBuffer()));
  +                        new (fMemoryManager) KVStringPair(SchemaSymbols::fgELT_PATTERN, pattern.getRawBuffer(), fMemoryManager));
           }
   
           if (fixedFlag) {
   
               XMLString::binToText(fixedFlag, fixedFlagStr, 15, 10);
               facets->put((void*) SchemaSymbols::fgATT_FIXED,
  -                        new (fMemoryManager) KVStringPair(SchemaSymbols::fgATT_FIXED, fixedFlagStr));
  +                        new (fMemoryManager) KVStringPair(SchemaSymbols::fgATT_FIXED, fixedFlagStr, fMemoryManager));
           }
   
           try {
  @@ -3041,7 +3113,7 @@
       int                             size = 1;
       const XMLCh*                    baseTypeName = getElementAttValue(contentElem, SchemaSymbols::fgATT_MEMBERTYPES);
       DatatypeValidator*              baseValidator = 0;
  -    RefVectorOf<DatatypeValidator>* validators = new (fMemoryManager) RefVectorOf<DatatypeValidator>(4, false);
  +    RefVectorOf<DatatypeValidator>* validators = new (fMemoryManager) RefVectorOf<DatatypeValidator>(4, false, fMemoryManager);
       Janitor<DVRefVector>            janValidators(validators);
       DOMElement*                     content = 0;
   
  @@ -3358,13 +3430,13 @@
                       const XMLCh* attValue = content->getAttribute(SchemaSymbols::fgATT_VALUE);
   
                       if (facets == 0) {
  -                        facets = new (fMemoryManager) RefHashTableOf<KVStringPair>(29, true);
  +                        facets = new (fMemoryManager) RefHashTableOf<KVStringPair>(29, true, fMemoryManager);
                       }
   
                       if (XMLString::equals(facetName, SchemaSymbols::fgELT_ENUMERATION)) {
   
                           if (!enums) {
  -                            enums = new (fMemoryManager) RefArrayVectorOf<XMLCh>(8, true);
  +                            enums = new (fMemoryManager) RefArrayVectorOf<XMLCh>(8, true, fMemoryManager);
                           }
   
                           enums->addElement(XMLString::replicate(attValue));
  @@ -3392,7 +3464,7 @@
                               const XMLCh* facetNameStr =
                                   fStringPool->getValueForId(fStringPool->addOrFind(facetName));
   
  -                            facets->put((void*) facetNameStr, new (fMemoryManager) KVStringPair(facetNameStr, attValue));
  +                            facets->put((void*) facetNameStr, new (fMemoryManager) KVStringPair(facetNameStr, attValue, fMemoryManager));
                               checkFixedFacet(content, facetNameStr, typeInfo->getBaseDatatypeValidator(), fixedFlag);
                           }
                       }
  @@ -3419,7 +3491,7 @@
   
                       XMLString::binToText(fixedFlag, fixedFlagStr, 15, 10);
                       facets->put((void*) SchemaSymbols::fgATT_FIXED,
  -                        new (fMemoryManager) KVStringPair(SchemaSymbols::fgATT_FIXED, fixedFlagStr));
  +                        new (fMemoryManager) KVStringPair(SchemaSymbols::fgATT_FIXED, fixedFlagStr, fMemoryManager));
                   }
   
                   try {
  @@ -3672,7 +3744,7 @@
       // ------------------------------------------------------------------
       int uriIndex = fEmptyNamespaceURI;
       XMLAttDef::AttTypes attType = XMLAttDef::Any_Any;
  -    ValueVectorOf<unsigned int> namespaceList(8);
  +    ValueVectorOf<unsigned int> namespaceList(8, fMemoryManager);
   
       if ((!nameSpace || !*nameSpace)
           || XMLString::equals(nameSpace, SchemaSymbols::fgATTVAL_TWOPOUNDANY)) {
  @@ -3767,7 +3839,7 @@
   
   
       if (!fIdentityConstraintNames) {
  -        fIdentityConstraintNames = new (fMemoryManager) RefHash2KeysTableOf<IdentityConstraint>(29, false);
  +        fIdentityConstraintNames = new (fMemoryManager) RefHash2KeysTableOf<IdentityConstraint>(29, (bool) false, fMemoryManager);
       }
   
       if (fIdentityConstraintNames->containsKey(name, fTargetNSURI)) {
  @@ -3828,7 +3900,7 @@
       }
   
       if (!fIdentityConstraintNames) {
  -        fIdentityConstraintNames = new (fMemoryManager) RefHash2KeysTableOf<IdentityConstraint>(29, false);
  +        fIdentityConstraintNames = new (fMemoryManager) RefHash2KeysTableOf<IdentityConstraint>(29, (bool) false, fMemoryManager);
       }
   
       if (fIdentityConstraintNames->containsKey(name, fTargetNSURI)) {
  @@ -4523,7 +4595,7 @@
       const XMLCh* uriStr = resolvePrefixToURI(elem, prefix);
       QName*       eltName = new (fMemoryManager) QName(prefix , localPart, uriStr != 0
                                          ? fURIStringPool->addOrFind(uriStr)
  -                                       : fEmptyNamespaceURI);
  +                                       : fEmptyNamespaceURI, fMemoryManager);
   
       //if from another schema, just return the element QName
       if (!XMLString::equals(uriStr, fTargetNSURIString)) {
  @@ -5717,10 +5789,18 @@
                   }
   
                   typeInfo->setAdoptContentSpec(false);
  -                typeInfo->setContentSpec(
  -                    new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence,
  -                                        new (fMemoryManager) ContentSpecNode(*baseSpecNode),
  -                                        specNode));
  +                typeInfo->setContentSpec
  +                (
  +                    new (fMemoryManager) ContentSpecNode
  +                    (
  +                        ContentSpecNode::Sequence
  +                        , new (fMemoryManager) ContentSpecNode(*baseSpecNode)
  +                        , specNode
  +                        , true
  +                        , true
  +                        , fMemoryManager
  +                    )
  +                );
                   typeInfo->setAdoptContentSpec(true);
               }
           }
  @@ -5734,10 +5814,17 @@
       // -------------------------------------------------------------
       if (isBaseAnyType && typeDerivedBy == SchemaSymbols::XSD_EXTENSION) {
   
  -        ContentSpecNode* anySpecNode = new (fMemoryManager) ContentSpecNode(new (fMemoryManager) QName(XMLUni::fgZeroLenString,
  -                                                                     XMLUni::fgZeroLenString,
  -                                                                     fEmptyNamespaceURI),
  -                                                           false);
  +        ContentSpecNode* anySpecNode = new (fMemoryManager) ContentSpecNode
  +        (
  +            new (fMemoryManager) QName
  +            (
  +                XMLUni::fgZeroLenString
  +                , XMLUni::fgZeroLenString
  +                , fEmptyNamespaceURI, fMemoryManager
  +            )
  +            , false
  +            , fMemoryManager
  +        );
   
           anySpecNode->setType(ContentSpecNode::Any_Lax);
           anySpecNode->setMinOccurs(0);
  @@ -5750,7 +5837,18 @@
           else {
   
               typeInfo->setAdoptContentSpec(false);
  -            typeInfo->setContentSpec(new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence, anySpecNode, specNode));
  +            typeInfo->setContentSpec
  +            (
  +                new (fMemoryManager) ContentSpecNode
  +                (
  +                    ContentSpecNode::Sequence
  +                    , anySpecNode
  +                    , specNode
  +                    , true
  +                    , true
  +                    , fMemoryManager
  +                )
  +            );
               typeInfo->setAdoptContentSpec(true);
   
               if (!isMixed) {
  @@ -5769,11 +5867,18 @@
           }
           else {
               // add #PCDATA leaf and set its minOccurs to 0
  -            ContentSpecNode* pcdataNode =
  -                  new (fMemoryManager) ContentSpecNode(new (fMemoryManager) QName(XMLUni::fgZeroLenString,
  -                                                XMLUni::fgZeroLenString,
  -                                                XMLElementDecl::fgPCDataElemId),
  -                                      false);
  +            ContentSpecNode* pcdataNode = new (fMemoryManager) ContentSpecNode
  +            (
  +                new (fMemoryManager) QName
  +                (
  +                    XMLUni::fgZeroLenString
  +                    , XMLUni::fgZeroLenString
  +                    , XMLElementDecl::fgPCDataElemId
  +                    , fMemoryManager
  +                )
  +                , false
  +                , fMemoryManager
  +            );
   
               pcdataNode->setMinOccurs(0);
               typeInfo->setContentSpec(pcdataNode);
  @@ -5993,7 +6098,7 @@
       SchemaAttDef* attWildCard = 0;
       Janitor<SchemaAttDef> janAttWildCard(0);
       XercesAttGroupInfo* attGroupInfo = 0;
  -    ValueVectorOf<XercesAttGroupInfo*> attGroupList(4);
  +    ValueVectorOf<XercesAttGroupInfo*> attGroupList(4, fMemoryManager);
   
       for (; child != 0; child = XUtil::getNextSiblingElement(child)) {
   
  @@ -6890,7 +6995,7 @@
           if (listSize) {
   
               bool                        found = false;
  -            ValueVectorOf<unsigned int> tmpURIList(listSize);
  +            ValueVectorOf<unsigned int> tmpURIList(listSize, fMemoryManager);
   
               for (unsigned int i=0; i < listSize; i++) {
   
  @@ -6927,7 +7032,7 @@
   
           if (listSize) {
   
  -            ValueVectorOf<unsigned int> tmpURIList(listSize);
  +            ValueVectorOf<unsigned int> tmpURIList(listSize, fMemoryManager);
   
               for (unsigned int i=0; i < listSize; i++) {
   
  @@ -7950,21 +8055,27 @@
       fDatatypeRegistry = fSchemaGrammar->getDatatypeRegistry();
       fStringPool = fGrammarResolver->getStringPool();
       fEmptyNamespaceURI = fScanner->getEmptyNamespaceId();
  -    fCurrentTypeNameStack = new (fMemoryManager) ValueVectorOf<unsigned int>(8);
  -    fCurrentGroupStack = new (fMemoryManager) ValueVectorOf<unsigned int>(8);
  +    fCurrentTypeNameStack = new (fMemoryManager) ValueVectorOf<unsigned int>(8, fMemoryManager);
  +    fCurrentGroupStack = new (fMemoryManager) ValueVectorOf<unsigned int>(8, fMemoryManager);
   
       fGlobalDeclarations = (ValueVectorOf<unsigned int>**) fMemoryManager->allocate
       (
           ENUM_ELT_SIZE * sizeof(ValueVectorOf<unsigned int>*)
       );//new ValueVectorOf<unsigned int>*[ENUM_ELT_SIZE];
       for(unsigned int i=0; i < ENUM_ELT_SIZE; i++)
  -        fGlobalDeclarations[i] = new (fMemoryManager) ValueVectorOf<unsigned int>(8);
  +        fGlobalDeclarations[i] = new (fMemoryManager) ValueVectorOf<unsigned int>(8, fMemoryManager);
   
  -    fNotationRegistry = new (fMemoryManager) RefHash2KeysTableOf<XMLCh>(13, false);
  -    fSchemaInfoList = new (fMemoryManager) RefHash2KeysTableOf<SchemaInfo>(29);
  -    fPreprocessedNodes = new (fMemoryManager) RefHashTableOf<SchemaInfo>(29, false, new (fMemoryManager) HashPtr());
  -    fLocator = new XSDLocator();
  -    fDeclStack = new (fMemoryManager) ValueVectorOf<const DOMElement*>(16);
  +    fNotationRegistry = new (fMemoryManager) RefHash2KeysTableOf<XMLCh>(13, (bool) false, fMemoryManager);
  +    fSchemaInfoList = new (fMemoryManager) RefHash2KeysTableOf<SchemaInfo>(29, fMemoryManager);
  +    fPreprocessedNodes = new (fMemoryManager) RefHashTableOf<SchemaInfo>
  +    (
  +        29
  +        , false
  +        , new (fMemoryManager) HashPtr()
  +        , fMemoryManager
  +    );
  +    fLocator = new (fMemoryManager) XSDLocator();
  +    fDeclStack = new (fMemoryManager) ValueVectorOf<const DOMElement*>(16, fMemoryManager);
   }
   
   void TraverseSchema::cleanUp() {
  
  
  
  1.5       +3 -3      xml-xerces/c/src/xercesc/validators/schema/XercesAttGroupInfo.hpp
  
  Index: XercesAttGroupInfo.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/XercesAttGroupInfo.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XercesAttGroupInfo.hpp	16 May 2003 21:43:21 -0000	1.4
  +++ XercesAttGroupInfo.hpp	18 May 2003 14:02:08 -0000	1.5
  @@ -213,7 +213,7 @@
                                                const bool toClone) {
   
       if (!fAttributes) {
  -        fAttributes = new (fMemoryManager) RefVectorOf<SchemaAttDef>(4);
  +        fAttributes = new (fMemoryManager) RefVectorOf<SchemaAttDef>(4, true, fMemoryManager);
       }
   
       if (toClone) {
  @@ -228,7 +228,7 @@
                                                const bool toClone) {
   
       if (!fAnyAttributes) {
  -        fAnyAttributes = new (fMemoryManager) RefVectorOf<SchemaAttDef>(2);
  +        fAnyAttributes = new (fMemoryManager) RefVectorOf<SchemaAttDef>(2, true, fMemoryManager);
       }
   
       if (toClone) {
  
  
  
  1.6       +4 -1      xml-xerces/c/src/xercesc/validators/schema/XercesGroupInfo.cpp
  
  Index: XercesGroupInfo.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/XercesGroupInfo.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XercesGroupInfo.cpp	15 May 2003 18:57:27 -0000	1.5
  +++ XercesGroupInfo.cpp	18 May 2003 14:02:08 -0000	1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2003/05/18 14:02:08  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.5  2003/05/15 18:57:27  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -99,7 +102,7 @@
       , fBaseGroup(0)
       , fLocator(0)
   {
  -    fElements = new (manager) RefVectorOf<SchemaElementDecl>(4, false);
  +    fElements = new (manager) RefVectorOf<SchemaElementDecl>(4, false, manager);
   }
   
   
  
  
  
  1.5       +5 -2      xml-xerces/c/src/xercesc/validators/schema/identity/FieldValueMap.cpp
  
  Index: FieldValueMap.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/identity/FieldValueMap.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FieldValueMap.cpp	15 May 2003 18:59:34 -0000	1.4
  +++ FieldValueMap.cpp	18 May 2003 14:02:09 -0000	1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/05/18 14:02:09  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.4  2003/05/15 18:59:34  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -104,10 +107,10 @@
   
               fFields = new (fMemoryManager) ValueVectorOf<IC_Field*>(*(other.fFields));
               fValidators = new (fMemoryManager) ValueVectorOf<DatatypeValidator*>(*(other.fValidators));
  -            fValues = new (fMemoryManager) RefArrayVectorOf<XMLCh>(other.fFields->curCapacity());
  +            fValues = new (fMemoryManager) RefArrayVectorOf<XMLCh>(other.fFields->curCapacity(), true, fMemoryManager);
   
               for (unsigned int i=0; i<valuesSize; i++) {
  -                fValues->addElement(XMLString::replicate(other.fValues->elementAt(i)));
  +                fValues->addElement(XMLString::replicate(other.fValues->elementAt(i), fMemoryManager));
               }
           }
       }
  
  
  
  1.6       +4 -4      xml-xerces/c/src/xercesc/validators/schema/identity/FieldValueMap.hpp
  
  Index: FieldValueMap.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/identity/FieldValueMap.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FieldValueMap.hpp	16 May 2003 21:43:22 -0000	1.5
  +++ FieldValueMap.hpp	18 May 2003 14:02:09 -0000	1.6
  @@ -199,9 +199,9 @@
                                  const XMLCh* const value) {
   
       if (!fFields) {
  -        fFields = new (fMemoryManager) ValueVectorOf<IC_Field*>(4);
  -        fValidators = new (fMemoryManager) ValueVectorOf<DatatypeValidator*>(4);
  -        fValues = new (fMemoryManager) RefArrayVectorOf<XMLCh>(4);
  +        fFields = new (fMemoryManager) ValueVectorOf<IC_Field*>(4, fMemoryManager);
  +        fValidators = new (fMemoryManager) ValueVectorOf<DatatypeValidator*>(4, fMemoryManager);
  +        fValues = new (fMemoryManager) RefArrayVectorOf<XMLCh>(4, true, fMemoryManager);
       }
   
       int keyIndex = indexOf(key);
  
  
  
  1.5       +2 -2      xml-xerces/c/src/xercesc/validators/schema/identity/IdentityConstraint.hpp
  
  Index: IdentityConstraint.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/identity/IdentityConstraint.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- IdentityConstraint.hpp	16 May 2003 21:43:22 -0000	1.4
  +++ IdentityConstraint.hpp	18 May 2003 14:02:09 -0000	1.5
  @@ -199,7 +199,7 @@
   inline void IdentityConstraint::addField(IC_Field* const field) {
   
       if (!fFields) {
  -        fFields = new (fMemoryManager) RefVectorOf<IC_Field>(4);
  +        fFields = new (fMemoryManager) RefVectorOf<IC_Field>(4, true, fMemoryManager);
       }
   
       fFields->addElement(field);
  
  
  
  1.7       +5 -2      xml-xerces/c/src/xercesc/validators/schema/identity/ValueStore.cpp
  
  Index: ValueStore.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/identity/ValueStore.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ValueStore.cpp	15 May 2003 18:59:34 -0000	1.6
  +++ ValueStore.cpp	18 May 2003 14:02:09 -0000	1.7
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.7  2003/05/18 14:02:09  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.6  2003/05/15 18:59:34  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -162,7 +165,7 @@
   
           // store values
           if (!fValueTuples) {
  -            fValueTuples = new (fMemoryManager) RefVectorOf<FieldValueMap>(4);
  +            fValueTuples = new (fMemoryManager) RefVectorOf<FieldValueMap>(4, true, fMemoryManager);
           }
   
           fValueTuples->addElement(new (fMemoryManager) FieldValueMap(fValues));
  @@ -184,7 +187,7 @@
           if (!contains(valueMap)) {
   
               if (!fValueTuples) {
  -                fValueTuples = new (fMemoryManager) RefVectorOf<FieldValueMap>(4);
  +                fValueTuples = new (fMemoryManager) RefVectorOf<FieldValueMap>(4, true, fMemoryManager);
               }
   
               fValueTuples->addElement(new (fMemoryManager) FieldValueMap(*valueMap));
  
  
  
  1.7       +26 -5     xml-xerces/c/src/xercesc/validators/schema/identity/ValueStoreCache.cpp
  
  Index: ValueStoreCache.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/identity/ValueStoreCache.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ValueStoreCache.cpp	15 May 2003 18:59:34 -0000	1.6
  +++ ValueStoreCache.cpp	18 May 2003 14:02:09 -0000	1.7
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.7  2003/05/18 14:02:09  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.6  2003/05/15 18:59:34  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -129,7 +132,13 @@
   void ValueStoreCache::startElement() {
   
       fGlobalMapStack->push(fGlobalICMap);
  -    fGlobalICMap = new (fMemoryManager) RefHashTableOf<ValueStore>(13, false, new (fMemoryManager) HashPtr());
  +    fGlobalICMap = new (fMemoryManager) RefHashTableOf<ValueStore>
  +    (
  +        13
  +        , false
  +        , new (fMemoryManager) HashPtr()
  +        , fMemoryManager
  +    );
   }
   
   void ValueStoreCache::endElement() {
  @@ -171,10 +180,22 @@
   
   void ValueStoreCache::init() {
   
  -    fValueStores = new (fMemoryManager) RefVectorOf<ValueStore>(8);
  -    fGlobalICMap = new (fMemoryManager) RefHashTableOf<ValueStore>(13, false, new (fMemoryManager) HashPtr());
  -    fIC2ValueStoreMap = new (fMemoryManager) RefHash2KeysTableOf<ValueStore>(13, false, new (fMemoryManager) HashPtr());
  -    fGlobalMapStack = new (fMemoryManager) RefStackOf<RefHashTableOf<ValueStore> >(8);
  +    fValueStores = new (fMemoryManager) RefVectorOf<ValueStore>(8, true, fMemoryManager);
  +    fGlobalICMap = new (fMemoryManager) RefHashTableOf<ValueStore>
  +    (
  +        13
  +        , false
  +        , new (fMemoryManager) HashPtr()
  +        , fMemoryManager
  +    );
  +    fIC2ValueStoreMap = new (fMemoryManager) RefHash2KeysTableOf<ValueStore>
  +    (
  +        13
  +        , false
  +        , new (fMemoryManager) HashPtr()
  +        , fMemoryManager
  +    );
  +    fGlobalMapStack = new (fMemoryManager) RefStackOf<RefHashTableOf<ValueStore> >(8, true, fMemoryManager);
   }
   
   void ValueStoreCache::initValueStoresFor(SchemaElementDecl* const elemDecl,
  
  
  
  1.8       +6 -3      xml-xerces/c/src/xercesc/validators/schema/identity/XPathMatcher.cpp
  
  Index: XPathMatcher.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/identity/XPathMatcher.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- XPathMatcher.cpp	15 May 2003 18:59:34 -0000	1.7
  +++ XPathMatcher.cpp	18 May 2003 14:02:09 -0000	1.8
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.8  2003/05/18 14:02:09  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.7  2003/05/15 18:59:34  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -162,7 +165,7 @@
   
           if (fLocationPathSize) {
   
  -            fStepIndexes = new (fMemoryManager) RefVectorOf<ValueStackOf<int> >(fLocationPathSize);
  +            fStepIndexes = new (fMemoryManager) RefVectorOf<ValueStackOf<int> >(fLocationPathSize, true, fMemoryManager);
               fCurrentStep = (int*) fMemoryManager->allocate
               (
                   fLocationPathSize * sizeof(int)
  @@ -177,7 +180,7 @@
               );//new int[fLocationPathSize];
   
               for(unsigned int i=0; i < fLocationPathSize; i++) {
  -                fStepIndexes->addElement(new (fMemoryManager) ValueStackOf<int>(8));
  +                fStepIndexes->addElement(new (fMemoryManager) ValueStackOf<int>(8, fMemoryManager));
               }
           }
       }
  @@ -262,7 +265,7 @@
   
               if (nodeTest->getType() == XercesNodeTest::QNAME) {
   
  -                QName elemQName(elemPrefix, elemDecl.getElementName()->getLocalPart(), urlId);
  +                QName elemQName(elemPrefix, elemDecl.getElementName()->getLocalPart(), urlId, fMemoryManager);
   
   //                if (!(*(nodeTest->getName()) == *(elemDecl.getElementName()))) {
                   if (!(*(nodeTest->getName()) == elemQName)) {
  
  
  
  1.4       +5 -2      xml-xerces/c/src/xercesc/validators/schema/identity/XPathMatcherStack.cpp
  
  Index: XPathMatcherStack.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/identity/XPathMatcherStack.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XPathMatcherStack.cpp	15 May 2003 18:59:34 -0000	1.3
  +++ XPathMatcherStack.cpp	18 May 2003 14:02:09 -0000	1.4
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.4  2003/05/18 14:02:09  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.3  2003/05/15 18:59:34  knoaman
    * Partial implementation of the configurable memory manager.
    *
  @@ -82,11 +85,11 @@
   // ---------------------------------------------------------------------------
   XPathMatcherStack::XPathMatcherStack(MemoryManager* const manager)
       : fMatchersCount(0)
  -    , fContextStack(new (manager) ValueStackOf<int>(8))
  +    , fContextStack(new (manager) ValueStackOf<int>(8, manager))
       , fMatchers(0)
   {
       try {
  -        fMatchers = new (manager) RefVectorOf<XPathMatcher>(8);
  +        fMatchers = new (manager) RefVectorOf<XPathMatcher>(8, true, manager);
       }
       catch(...) {
   
  
  
  
  1.8       +9 -11     xml-xerces/c/src/xercesc/validators/schema/identity/XercesXPath.cpp
  
  Index: XercesXPath.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/identity/XercesXPath.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- XercesXPath.cpp	16 May 2003 21:43:22 -0000	1.7
  +++ XercesXPath.cpp	18 May 2003 14:02:09 -0000	1.8
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.8  2003/05/18 14:02:09  knoaman
  + * Memory manager implementation: pass per instance manager.
  + *
    * Revision 1.7  2003/05/16 21:43:22  knoaman
    * Memory manager implementation: Modify constructors to pass in the memory manager.
    *
  @@ -236,11 +239,6 @@
   // ---------------------------------------------------------------------------
   //  XercesLocationPath: Constructors and Destructor
   // ---------------------------------------------------------------------------
  -XercesLocationPath::XercesLocationPath()
  -    : fSteps(0)
  -{
  -}
  -
   XercesLocationPath::XercesLocationPath(RefVectorOf<XercesStep>* const steps)
       : fSteps(steps)
   {
  @@ -363,16 +361,16 @@
           return;
       }
   
  -    ValueVectorOf<int>                tokens(16);
  +    ValueVectorOf<int>                tokens(16, fMemoryManager);
       XPathScannerForSchema             scanner(stringPool);
       bool                              success = scanner.scanExpression(fExpression, 0, length, &tokens);
       bool                              firstTokenOfLocationPath=true;
       unsigned int                      tokenCount = tokens.size();
  -    RefVectorOf<XercesStep>*          stepsVector = new (fMemoryManager) RefVectorOf<XercesStep>(16);
  +    RefVectorOf<XercesStep>*          stepsVector = new (fMemoryManager) RefVectorOf<XercesStep>(16, true, fMemoryManager);
       Janitor<RefVectorOf<XercesStep> > janSteps(stepsVector);
   
       if (tokenCount) {
  -        fLocationPaths = new (fMemoryManager) RefVectorOf<XercesLocationPath>(8);
  +        fLocationPaths = new (fMemoryManager) RefVectorOf<XercesLocationPath>(8, true, fMemoryManager);
       }
   
       for (unsigned int i = 0; i < tokenCount; i++) {
  @@ -395,7 +393,7 @@
   
                   fLocationPaths->addElement(new (fMemoryManager) XercesLocationPath(stepsVector));
                   janSteps.orphan();
  -                stepsVector = new (fMemoryManager) RefVectorOf<XercesStep>(16);
  +                stepsVector = new (fMemoryManager) RefVectorOf<XercesStep>(16, true, fMemoryManager);
                   janSteps.reset(stepsVector);
                   firstTokenOfLocationPath = true;
               }
  @@ -464,7 +462,7 @@
                           aToken = tokens.elementAt(++i);
   
                           const XMLCh* localPart = stringPool->getValueForId(aToken);
  -                        QName aQName(prefix, localPart, uri);
  +                        QName aQName(prefix, localPart, uri, fMemoryManager);
   
                           // build step
                           XercesNodeTest* nodeTest = new (fMemoryManager) XercesNodeTest(&aQName);
  @@ -535,7 +533,7 @@
   
                   aToken = tokens.elementAt(++i);
                   const XMLCh* localPart = stringPool->getValueForId(aToken);
  -                QName aQName(prefix, localPart, uri);
  +                QName aQName(prefix, localPart, uri, fMemoryManager);
   
                   // build step
                   XercesNodeTest* nodeTest = new (fMemoryManager) XercesNodeTest(&aQName);
  
  
  
  1.5       +1 -6      xml-xerces/c/src/xercesc/validators/schema/identity/XercesXPath.hpp
  
  Index: XercesXPath.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/identity/XercesXPath.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XercesXPath.hpp	16 May 2003 21:43:22 -0000	1.4
  +++ XercesXPath.hpp	18 May 2003 14:02:09 -0000	1.5
  @@ -178,7 +178,6 @@
       // -----------------------------------------------------------------------
       //  Constructors/Destructor
       // -----------------------------------------------------------------------
  -    XercesLocationPath();
       XercesLocationPath(RefVectorOf<XercesStep>* const steps);
       ~XercesLocationPath() { delete fSteps; }
   
  @@ -464,10 +463,6 @@
   }
   
   inline void XercesLocationPath::addStep(XercesStep* const aStep) {
  -
  -    if (!fSteps) {
  -        fSteps = new RefVectorOf<XercesStep>(16);
  -    }
   
       fSteps->addElement(aStep);
   }
  
  
  

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