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/15 20:57:28 UTC

cvs commit: xml-xerces/c/src/xercesc/validators/schema ComplexTypeInfo.cpp ComplexTypeInfo.hpp GeneralAttributeCheck.cpp GeneralAttributeCheck.hpp NamespaceScope.cpp NamespaceScope.hpp SchemaElementDecl.cpp SchemaElementDecl.hpp SchemaGrammar.cpp SchemaGrammar.hpp SchemaInfo.hpp SchemaValidator.cpp SchemaValidator.hpp TraverseSchema.cpp TraverseSchema.hpp XSDDOMParser.cpp XSDDOMParser.hpp XSDErrorReporter.hpp XercesAttGroupInfo.cpp XercesAttGroupInfo.hpp XercesGroupInfo.cpp XercesGroupInfo.hpp

knoaman     2003/05/15 11:57:28

  Modified:    c/src/xercesc/validators/schema ComplexTypeInfo.cpp
                        ComplexTypeInfo.hpp GeneralAttributeCheck.cpp
                        GeneralAttributeCheck.hpp NamespaceScope.cpp
                        NamespaceScope.hpp SchemaElementDecl.cpp
                        SchemaElementDecl.hpp SchemaGrammar.cpp
                        SchemaGrammar.hpp SchemaInfo.hpp
                        SchemaValidator.cpp SchemaValidator.hpp
                        TraverseSchema.cpp TraverseSchema.hpp
                        XSDDOMParser.cpp XSDDOMParser.hpp
                        XSDErrorReporter.hpp XercesAttGroupInfo.cpp
                        XercesAttGroupInfo.hpp XercesGroupInfo.cpp
                        XercesGroupInfo.hpp
  Log:
  Partial implementation of the configurable memory manager.
  
  Revision  Changes    Path
  1.7       +55 -42    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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ComplexTypeInfo.cpp	29 Jan 2003 19:57:30 -0000	1.6
  +++ ComplexTypeInfo.cpp	15 May 2003 18:57:27 -0000	1.7
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.7  2003/05/15 18:57:27  knoaman
  + * Partial implementation of the configurable memory manager.
  + *
    * Revision 1.6  2003/01/29 19:57:30  gareth
    * API to retrive local and uri part of the type name
    *
  @@ -176,8 +179,9 @@
   // ---------------------------------------------------------------------------
   //  ComplexTypeInfo: Constructors and Destructor
   // ---------------------------------------------------------------------------
  -ComplexTypeInfo::ComplexTypeInfo()
  -    : fAbstract(false)
  +ComplexTypeInfo::ComplexTypeInfo(MemoryManager* const manager)
  +    : fAnonymous(false)
  +    , fAbstract(false)
       , fAdoptContentSpec(true)
       , fAttWithTypeId(false)
       , fPreprocessed(false)
  @@ -205,7 +209,7 @@
       , fContentSpecOrgURISize(16)
       , fSpecNodesToDelete(0)
       , fLocator(0)
  -    , fAnonymous(false)
  +    , fMemoryManager(manager)
   {
   
   }
  @@ -213,9 +217,9 @@
   
   ComplexTypeInfo::~ComplexTypeInfo()
   {
  -    delete [] fTypeName;
  -    delete [] fTypeLocalName;
  -    delete [] fTypeUri;
  +    fMemoryManager->deallocate(fTypeName); //delete [] fTypeName;
  +    fMemoryManager->deallocate(fTypeLocalName); //delete [] fTypeLocalName;
  +    fMemoryManager->deallocate(fTypeUri); //delete [] fTypeUri;
   
       if (fAdoptContentSpec) {
           delete fContentSpec;
  @@ -229,8 +233,8 @@
       delete fLocator;
   
       delete fContentModel;
  -    delete [] fFormattedModel;
  -    delete [] fContentSpecOrgURI;
  +    fMemoryManager->deallocate(fFormattedModel); //delete [] fFormattedModel;
  +    fMemoryManager->deallocate(fContentSpecOrgURI); //delete [] fContentSpecOrgURI;
   }
   
   // ---------------------------------------------------------------------------
  @@ -326,7 +330,7 @@
               faultInAttDefList();
   
           // And add a default attribute for this name
  -        retVal = new SchemaAttDef(prefix, baseName, uriId);
  +        retVal = new (fMemoryManager) SchemaAttDef(prefix, baseName, uriId);
           retVal->setElemId(getElementId());
           fAttDefs->put((void*)retVal->getAttName()->getLocalPart(), uriId, retVal);
   
  @@ -364,7 +368,7 @@
                                                         XMLValidator*     const pValidator)
   {
       if (fContentSpec) {
  -        ContentSpecNode* specNode = new ContentSpecNode(*fContentSpec);
  +        ContentSpecNode* specNode = new (fMemoryManager) ContentSpecNode(*fContentSpec);
           XMLContentModel* cm = makeContentModel(true, specNode);
   
           if (cm) {
  @@ -383,7 +387,7 @@
   {
       // Use a hash modulus of 29 and tell it owns its elements
       ((ComplexTypeInfo*)this)->fAttDefs =
  -                    new RefHash2KeysTableOf<SchemaAttDef>(29, true);
  +                    new (fMemoryManager) RefHash2KeysTableOf<SchemaAttDef>(29, true);
   }
   
   XMLCh* ComplexTypeInfo::formatContentModel() const
  @@ -391,13 +395,13 @@
       XMLCh* newValue = 0;
       if (fContentType == SchemaElementDecl::Any)
       {
  -        newValue = XMLString::replicate(XMLUni::fgAnyString);
  +        newValue = XMLString::replicate(XMLUni::fgAnyString, fMemoryManager);
       }
  -     else if (fContentType == SchemaElementDecl::Empty)
  +    else if (fContentType == SchemaElementDecl::Empty)
       {
  -        newValue = XMLString::replicate(XMLUni::fgEmptyString);
  +        newValue = XMLString::replicate(XMLUni::fgEmptyString, fMemoryManager);
       }
  -     else
  +    else
       {
           //
           //  Use a temp XML buffer to format into. Content models could be
  @@ -409,9 +413,12 @@
           if (specNode) {
               XMLBuffer bufFmt;
   
  -
               specNode->formatSpec(bufFmt);
  -            newValue = XMLString::replicate(bufFmt.getRawBuffer());
  +            newValue = XMLString::replicate
  +            (
  +                bufFmt.getRawBuffer()
  +                , fMemoryManager
  +            );
           }
       }
       return newValue;
  @@ -420,14 +427,17 @@
   XMLContentModel* ComplexTypeInfo::makeContentModel(const bool checkUPA, ContentSpecNode* const specNode)
   {
       if ((specNode || fContentSpec) && !fSpecNodesToDelete) {
  -        fSpecNodesToDelete = new RefVectorOf<ContentSpecNode>(8);
  +        fSpecNodesToDelete = new (fMemoryManager) RefVectorOf<ContentSpecNode>(8);
       }
   
       // expand the content spec first
       ContentSpecNode* aSpecNode = specNode;
       if (aSpecNode) {
   
  -        fContentSpecOrgURI = new unsigned int[fContentSpecOrgURISize];
  +        fContentSpecOrgURI = (unsigned int*) fMemoryManager->allocate
  +        (
  +            fContentSpecOrgURISize * sizeof(unsigned int)
  +        ); //new unsigned int[fContentSpecOrgURISize];
           aSpecNode = convertContentSpecTree(aSpecNode, checkUPA);
           fSpecNodesToDelete->addElement(aSpecNode);
       }
  @@ -454,7 +464,7 @@
           //  Just create a mixel content model object. This type of
           //  content model is optimized for mixed content validation.
           //
  -        cmRet = new MixedContentModel(false, aSpecNode);
  +        cmRet = new (fMemoryManager) MixedContentModel(false, aSpecNode);
       }
       else if (fContentType == SchemaElementDecl::Mixed_Complex) {
   
  @@ -514,12 +524,12 @@
               // All the nodes under an ALL must be additional ALL nodes and
               // ELEMENTs (or ELEMENTs under ZERO_OR_ONE nodes.)
               // We collapse the ELEMENTs into a single vector.
  -            return new AllContentModel(specNode, true);
  +            return new (fMemoryManager) AllContentModel(specNode, true, fMemoryManager);
           }
           else if (specType == ContentSpecNode::ZeroOrOne) {
               // An ALL node can appear under a ZERO_OR_ONE node.
               if (specNode->getFirst()->getType() == ContentSpecNode::All) {
  -                return new AllContentModel(specNode->getFirst(), true);
  +                return new (fMemoryManager) AllContentModel(specNode->getFirst(), true, fMemoryManager);
               }
           }
   
  @@ -528,7 +538,7 @@
        else if (specType == ContentSpecNode::Leaf)
       {
           // Create a simple content model
  -        return new SimpleContentModel
  +        return new (fMemoryManager) SimpleContentModel
           (
               false
               , specNode->getElement()
  @@ -547,7 +557,7 @@
           &&  (specNode->getSecond())
           &&  (specNode->getSecond()->getType() == ContentSpecNode::Leaf))
           {
  -            return new SimpleContentModel
  +            return new (fMemoryManager) SimpleContentModel
               (
                   false
                   , specNode->getFirst()->getElement()
  @@ -567,7 +577,7 @@
           //
           if (specNode->getFirst()->getType() == ContentSpecNode::Leaf)
           {
  -            return new SimpleContentModel
  +            return new (fMemoryManager) SimpleContentModel
               (
                   false
                   , specNode->getFirst()->getElement()
  @@ -576,11 +586,11 @@
               );
           }
           else if (specNode->getFirst()->getType() == ContentSpecNode::All)
  -            return new AllContentModel(specNode->getFirst(), false);
  +            return new (fMemoryManager) AllContentModel(specNode->getFirst(), false, fMemoryManager);
   
       }
       else if (specType == ContentSpecNode::All)
  -        return new AllContentModel(specNode, false);
  +        return new (fMemoryManager) AllContentModel(specNode, false, fMemoryManager);
   
       else
       {
  @@ -588,7 +598,7 @@
       }
   
       // Its not any simple type of content, so create a DFA based content model
  -    return new DFAContentModel(false, specNode, isMixed);
  +    return new (fMemoryManager) DFAContentModel(false, specNode, isMixed, fMemoryManager);
   }
   
   ContentSpecNode*
  @@ -677,20 +687,20 @@
       }
       else if (minOccurs == 0 && maxOccurs == 1) {
   
  -        retNode = new ContentSpecNode(ContentSpecNode::ZeroOrOne, retNode, 0);
  +        retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::ZeroOrOne, retNode, 0);
       }
       else if (minOccurs == 0 && maxOccurs == -1) {
  -        retNode = new ContentSpecNode(ContentSpecNode::ZeroOrMore, retNode, 0);
  +        retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::ZeroOrMore, retNode, 0);
       }
       else if (minOccurs == 1 && maxOccurs == -1) {
  -        retNode = new ContentSpecNode(ContentSpecNode::OneOrMore, retNode, 0);
  +        retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::OneOrMore, retNode, 0);
       }
       else if (maxOccurs == -1) {
   
  -        retNode = new ContentSpecNode(ContentSpecNode::OneOrMore, retNode, 0);
  +        retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::OneOrMore, retNode, 0);
   
           for (int i=0; i < (int)(minOccurs-1); i++) {
  -            retNode = new ContentSpecNode(ContentSpecNode::Sequence,
  +            retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence,
                                             saveNode, retNode, false);
           }
       }
  @@ -699,12 +709,12 @@
           if (minOccurs == 0) {
   
               ContentSpecNode* optional =
  -                new ContentSpecNode(ContentSpecNode::ZeroOrOne, saveNode, 0);
  +                new (fMemoryManager) ContentSpecNode(ContentSpecNode::ZeroOrOne, saveNode, 0);
   
               retNode = optional;
   
               for (int i=0; i < (int)(maxOccurs-minOccurs-1); i++) {
  -                retNode = new ContentSpecNode(ContentSpecNode::Sequence,
  +                retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence,
                                                 retNode, optional, true, false);
               }
           }
  @@ -712,11 +722,11 @@
   
               if (minOccurs > 1) {
   
  -                retNode = new ContentSpecNode(ContentSpecNode::Sequence,
  +                retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence,
                                                 retNode, saveNode, true, false);
   
                   for (int i=1; i < (int)(minOccurs-1); i++) {
  -                    retNode = new ContentSpecNode(ContentSpecNode::Sequence,
  +                    retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence,
                                                     retNode, saveNode, true, false);
                   }
               }
  @@ -725,13 +735,13 @@
   
               if (counter > 0) {
   
  -                ContentSpecNode* optional = new ContentSpecNode(ContentSpecNode::ZeroOrOne, saveNode, 0, false);
  +                ContentSpecNode* optional = new (fMemoryManager) ContentSpecNode(ContentSpecNode::ZeroOrOne, saveNode, 0, false);
   
  -                retNode = new ContentSpecNode(ContentSpecNode::Sequence, retNode, optional);
  +                retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence, retNode, optional);
   
                   for (int j=1; j < counter; j++) {
   
  -                    retNode = new ContentSpecNode(ContentSpecNode::Sequence,
  +                    retNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence,
   					                              retNode, optional, true, false);
                   }
               }
  @@ -744,7 +754,10 @@
   void ComplexTypeInfo::resizeContentSpecOrgURI() {
   
       unsigned int newSize = fContentSpecOrgURISize * 2;
  -    unsigned int* newContentSpecOrgURI = new unsigned int[newSize];
  +    unsigned int* newContentSpecOrgURI = (unsigned int*) fMemoryManager->allocate
  +    (
  +        newSize * sizeof(unsigned int)
  +    ); //new unsigned int[newSize];
   
       // Copy the existing values
       unsigned int index = 0;
  @@ -755,7 +768,7 @@
           newContentSpecOrgURI[index] = 0;
   
       // Delete the old array and udpate our members
  -    delete [] fContentSpecOrgURI;
  +    fMemoryManager->deallocate(fContentSpecOrgURI); //delete [] fContentSpecOrgURI;
       fContentSpecOrgURI = newContentSpecOrgURI;
       fContentSpecOrgURISize = newSize;
   }
  
  
  
  1.12      +19 -14    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.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- ComplexTypeInfo.hpp	5 Feb 2003 09:00:18 -0000	1.11
  +++ ComplexTypeInfo.hpp	15 May 2003 18:57:27 -0000	1.12
  @@ -74,7 +74,6 @@
   #include <xercesc/util/XMLString.hpp>
   #include <xercesc/util/RefHash2KeysTableOf.hpp>
   #include <xercesc/util/RefVectorOf.hpp>
  -#include <xercesc/util/Janitor.hpp>
   #include <xercesc/framework/XMLElementDecl.hpp>
   #include <xercesc/framework/XMLContentModel.hpp>
   #include <xercesc/validators/schema/SchemaAttDef.hpp>
  @@ -92,13 +91,13 @@
   class XSDLocator;
   
   
  -class VALIDATORS_EXPORT ComplexTypeInfo
  +class VALIDATORS_EXPORT ComplexTypeInfo : public XMemory
   {
   public:
       // -----------------------------------------------------------------------
       //  Public Constructors/Destructor
       // -----------------------------------------------------------------------
  -    ComplexTypeInfo();
  +    ComplexTypeInfo(MemoryManager* const manager);
       ~ComplexTypeInfo();
   
       // -----------------------------------------------------------------------
  @@ -213,6 +212,7 @@
       // -----------------------------------------------------------------------
       //  Private data members
       // -----------------------------------------------------------------------
  +    bool                               fAnonymous;
       bool                               fAbstract;
       bool                               fAdoptContentSpec;
       bool                               fAttWithTypeId;
  @@ -241,7 +241,7 @@
       unsigned int                       fUniqueURI;
       unsigned int                       fContentSpecOrgURISize;
       XSDLocator*                        fLocator;
  -    bool                               fAnonymous;
  +    MemoryManager*                     fMemoryManager;
   };
   
   // ---------------------------------------------------------------------------
  @@ -402,7 +402,10 @@
       if(!fTypeLocalName) {
           int index = XMLString::indexOf(fTypeName, chComma);
           int length = XMLString::stringLen(fTypeName);
  -        XMLCh *tName = new XMLCh[length - index + 1];
  +        XMLCh *tName = (XMLCh*) fMemoryManager->allocate
  +        (
  +            (length - index + 1) * sizeof(XMLCh)
  +        ); //new XMLCh[length - index + 1];
           XMLString::subString(tName, fTypeName, index + 1, length);
           ((ComplexTypeInfo *)this)->fTypeLocalName = tName;
       }
  @@ -414,7 +417,10 @@
   {
       if(!fTypeUri) {
           int index = XMLString::indexOf(fTypeName, chComma);
  -        XMLCh *uri = new XMLCh[index + 1];
  +        XMLCh *uri = (XMLCh*) fMemoryManager->allocate
  +        (
  +            (index + 1) * sizeof(XMLCh)
  +        ); //new XMLCh[index + 1];
           XMLString::subString(uri, fTypeName, 0, index);
           ((ComplexTypeInfo *)this)->fTypeUri = uri;
       }
  @@ -478,13 +484,12 @@
   
   inline void ComplexTypeInfo::setTypeName(const XMLCh* const typeName) {
   
  -    delete [] fTypeName;
  -    delete [] fTypeLocalName;
  -    fTypeLocalName = 0;
  -    delete [] fTypeUri;
  -    fTypeUri = 0;
  +    fMemoryManager->deallocate(fTypeName);//delete [] fTypeName;
  +    fMemoryManager->deallocate(fTypeLocalName);//delete [] fTypeLocalName;
  +    fMemoryManager->deallocate(fTypeUri);//delete [] fTypeUri;
  +    fTypeLocalName = fTypeUri = 0;
   
  -    fTypeName = XMLString::replicate(typeName);
  +    fTypeName = XMLString::replicate(typeName, fMemoryManager);
   }
   
   inline void
  @@ -508,7 +513,7 @@
   inline void ComplexTypeInfo::addElement(SchemaElementDecl* const elem) {
   
       if (!fElements) {
  -        fElements = new RefVectorOf<SchemaElementDecl>(8, false);
  +        fElements = new (fMemoryManager) RefVectorOf<SchemaElementDecl>(8, false);
       }
       else if (fElements->containsElement(elem)) {
           return;
  
  
  
  1.13      +8 -3      xml-xerces/c/src/xercesc/validators/schema/GeneralAttributeCheck.cpp
  
  Index: GeneralAttributeCheck.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/GeneralAttributeCheck.cpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- GeneralAttributeCheck.cpp	17 Jan 2003 15:35:57 -0000	1.12
  +++ GeneralAttributeCheck.cpp	15 May 2003 18:57:27 -0000	1.13
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.13  2003/05/15 18:57:27  knoaman
  + * Partial implementation of the configurable memory manager.
  + *
    * Revision 1.12  2003/01/17 15:35:57  knoaman
    * Fix for attribute checking of schema declarations.
    *
  @@ -211,8 +214,10 @@
   // ---------------------------------------------------------------------------
   //  GeneralAttributeCheck: Constructors and Destructor
   // ---------------------------------------------------------------------------
  -GeneralAttributeCheck::GeneralAttributeCheck()
  -    : fIDRefList(0)
  +GeneralAttributeCheck::GeneralAttributeCheck(MemoryManager* const manager)
  +    : fMemoryManager(manager)
  +    , fIDRefList(0)
  +    , fIDValidator(manager)
   {
       mapElements();
   }
  @@ -227,7 +232,7 @@
   // ---------------------------------------------------------------------------
   void GeneralAttributeCheck::setUpValidators() {
   
  -    DatatypeValidatorFactory dvFactory;
  +    DatatypeValidatorFactory dvFactory(fMemoryManager);
   
       dvFactory.expandRegistryToFullSchemaSet();
       fNonNegIntDV = dvFactory.getDatatypeValidator(SchemaSymbols::fgDT_NONNEGATIVEINTEGER);
  
  
  
  1.8       +6 -7      xml-xerces/c/src/xercesc/validators/schema/GeneralAttributeCheck.hpp
  
  Index: GeneralAttributeCheck.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/GeneralAttributeCheck.hpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- GeneralAttributeCheck.hpp	7 Mar 2003 18:17:54 -0000	1.7
  +++ GeneralAttributeCheck.hpp	15 May 2003 18:57:27 -0000	1.8
  @@ -69,11 +69,9 @@
   // ---------------------------------------------------------------------------
   //  Includes
   // ---------------------------------------------------------------------------
  -#include <xercesc/util/RefVectorOf.hpp>
   #include <xercesc/util/RefHashTableOf.hpp>
  -#include <xercesc/util/RefHash2KeysTableOf.hpp>
  -#include <xercesc/validators/datatype/IDDatatypeValidator.hpp>
   #include <xercesc/util/ValueHashTableOf.hpp>
  +#include <xercesc/validators/datatype/IDDatatypeValidator.hpp>
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  @@ -84,7 +82,7 @@
   class DOMElement;
   
   
  -class VALIDATORS_EXPORT GeneralAttributeCheck
  +class VALIDATORS_EXPORT GeneralAttributeCheck : public XMemory
   {
   public:
       // -----------------------------------------------------------------------
  @@ -219,7 +217,7 @@
       // -----------------------------------------------------------------------
       //  Constructor/Destructor
       // -----------------------------------------------------------------------
  -    GeneralAttributeCheck();
  +    GeneralAttributeCheck(MemoryManager* const manager);
       ~GeneralAttributeCheck();
   
       // -----------------------------------------------------------------------
  @@ -285,8 +283,9 @@
       static DatatypeValidator*                fAnyURIDV;
       static unsigned short                    fgElemAttTable[E_Count][A_Count];
       static const XMLCh*                      fAttNames[A_Count];
  -    IDDatatypeValidator                      fIDValidator;
  +    MemoryManager*                           fMemoryManager;
       RefHashTableOf<XMLRefInfo>*              fIDRefList;
  +    IDDatatypeValidator                      fIDValidator;
   };
   
   
  
  
  
  1.3       +21 -8     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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- NamespaceScope.cpp	4 Nov 2002 14:49:41 -0000	1.2
  +++ NamespaceScope.cpp	15 May 2003 18:57:27 -0000	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.3  2003/05/15 18:57:27  knoaman
  + * Partial implementation of the configurable memory manager.
  + *
    * Revision 1.2  2002/11/04 14:49:41  tng
    * C++ Namespace Support.
    *
  @@ -91,9 +94,13 @@
       , fStackCapacity(8)
       , fStackTop(0)
       , fStack(0)
  +    , fMemoryManager(XMLPlatformUtils::fgMemoryManager)
   {
       // Do an initial allocation of the stack and zero it out
  -    fStack = new StackElem*[fStackCapacity];
  +    fStack = (StackElem**) fMemoryManager->allocate
  +    (
  +        fStackCapacity * sizeof(StackElem*)
  +    );//new StackElem*[fStackCapacity];
       memset(fStack, 0, fStackCapacity * sizeof(StackElem*));
   }
   
  @@ -110,12 +117,12 @@
               break;
   
           // Delete the row for this entry, then delete the row structure
  -        delete [] fStack[stackInd]->fMap;
  +        fMemoryManager->deallocate(fStack[stackInd]->fMap);//delete [] fStack[stackInd]->fMap;
           delete fStack[stackInd];
       }
   
       // Delete the stack array itself now
  -    delete [] fStack;
  +    fMemoryManager->deallocate(fStack);//delete [] fStack;
   }
   
   
  @@ -131,7 +138,7 @@
       // If this element has not been initialized yet, then initialize it
       if (!fStack[fStackTop])
       {
  -        fStack[fStackTop] = new StackElem;
  +        fStack[fStackTop] = new (fMemoryManager) StackElem;
           fStack[fStackTop]->fMapCapacity = 0;
           fStack[fStackTop]->fMap = 0;
       }
  @@ -258,7 +265,10 @@
       //
       const unsigned int newCapacity = oldCap ?
                                        (unsigned int)(oldCap * 1.25) : 16;
  -    PrefMapElem* newMap = new PrefMapElem[newCapacity];
  +    PrefMapElem* newMap = (PrefMapElem*) fMemoryManager->allocate
  +    (
  +        newCapacity * sizeof(PrefMapElem)
  +    );//new PrefMapElem[newCapacity];
   
       //
       //  Copy over the old stuff. We DON'T have to zero out the new stuff
  @@ -268,7 +278,7 @@
       memcpy(newMap, toExpand->fMap, oldCap * sizeof(PrefMapElem));
   
       // Delete the old map and store the new stuff
  -    delete [] toExpand->fMap;
  +    fMemoryManager->deallocate(toExpand->fMap);//delete [] toExpand->fMap;
       toExpand->fMap = newMap;
       toExpand->fMapCapacity = newCapacity;
   }
  @@ -277,7 +287,10 @@
   {
       // Expand the capacity by 25% and allocate a new buffer
       const unsigned int newCapacity = (unsigned int)(fStackCapacity * 1.25);
  -    StackElem** newStack = new StackElem*[newCapacity];
  +    StackElem** newStack = (StackElem**) fMemoryManager->allocate
  +    (
  +        newCapacity * sizeof(StackElem*)
  +    );//new StackElem*[newCapacity];
   
       // Copy over the old stuff
       memcpy(newStack, fStack, fStackCapacity * sizeof(StackElem*));
  @@ -295,7 +308,7 @@
       );
   
       // Delete the old array and update our members
  -    delete [] fStack;
  +    fMemoryManager->deallocate(fStack);//delete [] fStack;
       fStack = newStack;
       fStackCapacity = newCapacity;
   }
  
  
  
  1.4       +5 -5      xml-xerces/c/src/xercesc/validators/schema/NamespaceScope.hpp
  
  Index: NamespaceScope.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/NamespaceScope.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- NamespaceScope.hpp	7 Mar 2003 18:17:54 -0000	1.3
  +++ NamespaceScope.hpp	15 May 2003 18:57:27 -0000	1.4
  @@ -61,7 +61,6 @@
   #if !defined(NAMESPACESCOPE_HPP)
   #define NAMESPACESCOPE_HPP
   
  -#include <xercesc/util/XercesDefs.hpp>
   #include <xercesc/util/StringPool.hpp>
   
   XERCES_CPP_NAMESPACE_BEGIN
  @@ -72,7 +71,7 @@
   // at a particular instant in time.
   //
   
  -class VALIDATORS_EXPORT NamespaceScope
  +class VALIDATORS_EXPORT NamespaceScope : public XMemory
   {
   public :
       // -----------------------------------------------------------------------
  @@ -90,13 +89,13 @@
       //      The fMapCapacity is how large fMap has grown so far. fMapCount
       //      is how many of them are valid right now.
       // -----------------------------------------------------------------------
  -    struct PrefMapElem
  +    struct PrefMapElem : public XMemory
       {
           unsigned int        fPrefId;
           unsigned int        fURIId;
       };
   
  -    struct StackElem
  +    struct StackElem : public XMemory
       {
           PrefMapElem*        fMap;
           unsigned int        fMapCapacity;
  @@ -174,6 +173,7 @@
       unsigned int  fStackTop;
       XMLStringPool fPrefixPool;
       StackElem**   fStack;
  +    MemoryManager* fMemoryManager;
   };
   
   
  
  
  
  1.8       +15 -10    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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SchemaElementDecl.cpp	29 Jan 2003 19:47:16 -0000	1.7
  +++ SchemaElementDecl.cpp	15 May 2003 18:57:27 -0000	1.8
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.8  2003/05/15 18:57:27  knoaman
  + * Partial implementation of the configurable memory manager.
  + *
    * Revision 1.7  2003/01/29 19:47:16  gareth
    * added DOMTypeInfo and some PSVI methods
    *
  @@ -151,9 +154,9 @@
   // ---------------------------------------------------------------------------
   //  SchemaElementDecl: Constructors and Destructor
   // ---------------------------------------------------------------------------
  -SchemaElementDecl::SchemaElementDecl() :
  -
  -    fModelType(Any)
  +SchemaElementDecl::SchemaElementDecl(MemoryManager* const manager) :
  +    XMLElementDecl(manager)
  +    , fModelType(Any)
       , fDatatypeValidator(0)
       , fEnclosingScope(Grammar::TOP_LEVEL_SCOPE)
       , fBlockSet(0)
  @@ -180,8 +183,9 @@
                                      , const int                           uriId
                                      , const SchemaElementDecl::ModelTypes type
                                      , const int                           enclosingScope
  -                                   ) :
  -    fModelType(type)
  +                                   , MemoryManager* const                manager) :
  +    XMLElementDecl(manager)
  +    , fModelType(type)
       , fDatatypeValidator(0)
       , fEnclosingScope(enclosingScope)
       , fBlockSet(0)
  @@ -207,8 +211,9 @@
   SchemaElementDecl::SchemaElementDecl(const QName* const                  elementName
                                      , const SchemaElementDecl::ModelTypes type
                                      , const int                           enclosingScope
  -                                   ) :
  -    fModelType(type)
  +                                   , MemoryManager* const                manager) :
  +    XMLElementDecl(manager)
  +    , fModelType(type)
       , fDatatypeValidator(0)
       , fEnclosingScope(enclosingScope)
       , fBlockSet(0)
  @@ -233,7 +238,7 @@
   
   SchemaElementDecl::~SchemaElementDecl()
   {
  -    delete [] fDefaultValue;
  +    getMemoryManager()->deallocate(fDefaultValue);//delete [] fDefaultValue;
       delete fAttDefs;
       delete fIdentityConstraints;
       delete fAttWildCard;
  @@ -263,7 +268,7 @@
               // 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 RefHash2KeysTableOf<SchemaAttDef>(29, true);
  +                ((SchemaElementDecl*)this)->fAttDefs = new (getMemoryManager()) RefHash2KeysTableOf<SchemaAttDef>(29, true);
               }
   
               retVal = fAttDefs->get(baseName, uriId);
  @@ -272,7 +277,7 @@
               if (!retVal)
               {
                   // And add a default attribute for this name
  -                retVal = new SchemaAttDef(prefix, baseName, uriId);
  +                retVal = new (getMemoryManager()) SchemaAttDef(prefix, baseName, uriId);
                   retVal->setElemId(getId());
                   fAttDefs->put((void*)retVal->getAttName()->getLocalPart(), uriId, retVal);
   
  
  
  
  1.9       +16 -12    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.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SchemaElementDecl.hpp	29 Jan 2003 19:47:16 -0000	1.8
  +++ SchemaElementDecl.hpp	15 May 2003 18:57:27 -0000	1.9
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.9  2003/05/15 18:57:27  knoaman
  + * Partial implementation of the configurable memory manager.
  + *
    * Revision 1.8  2003/01/29 19:47:16  gareth
    * added DOMTypeInfo and some PSVI methods
    *
  @@ -179,22 +182,23 @@
       // -----------------------------------------------------------------------
       //  Constructors and Destructor
       // -----------------------------------------------------------------------
  -    SchemaElementDecl();
  -
  +    SchemaElementDecl(MemoryManager* const manager);
       SchemaElementDecl
       (
  -        const XMLCh* const       prefix
  -      , const XMLCh* const       localPart
  -      , const int                uriId
  -      , const ModelTypes         modelType = Any
  -      , const int                enclosingScope = Grammar::TOP_LEVEL_SCOPE
  +          const XMLCh* const   prefix
  +        , const XMLCh* const   localPart
  +        , const int            uriId
  +        , const ModelTypes     modelType// = Any
  +        , const int            enclosingScope// = Grammar::TOP_LEVEL_SCOPE
  +        , MemoryManager* const manager
       );
   
       SchemaElementDecl
       (
  -        const QName* const       elementName
  -      , const ModelTypes         modelType = Any
  -      , const int                enclosingScope = Grammar::TOP_LEVEL_SCOPE
  +          const QName* const   elementName
  +        , const ModelTypes     modelType// = Any
  +        , const int            enclosingScope// = Grammar::TOP_LEVEL_SCOPE
  +        , MemoryManager* const manager
       );
   
       ~SchemaElementDecl();
  @@ -783,10 +787,10 @@
   inline void SchemaElementDecl::setDefaultValue(const XMLCh* const value)
   {
       if (fDefaultValue) {
  -        delete[] fDefaultValue;
  +        getMemoryManager()->deallocate(fDefaultValue);//delete[] fDefaultValue;
       }
   
  -    fDefaultValue = XMLString::replicate(value);
  +    fDefaultValue = XMLString::replicate(value, getMemoryManager());
   }
   
   inline void
  
  
  
  1.4       +29 -8     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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SchemaGrammar.cpp	4 Nov 2002 14:49:41 -0000	1.3
  +++ SchemaGrammar.cpp	15 May 2003 18:57:27 -0000	1.4
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.4  2003/05/15 18:57:27  knoaman
  + * Partial implementation of the configurable memory manager.
  + *
    * Revision 1.3  2002/11/04 14:49:41  tng
    * C++ Namespace Support.
    *
  @@ -117,7 +120,7 @@
   // ---------------------------------------------------------------------------
   //  SchemaGrammar: Constructors and Destructor
   // ---------------------------------------------------------------------------
  -SchemaGrammar::SchemaGrammar() :
  +SchemaGrammar::SchemaGrammar(MemoryManager* const manager) :
       fTargetNamespace(0)
       , fElemDeclPool(0)
       , fElemNonDeclPool(0)
  @@ -130,7 +133,9 @@
       , fNamespaceScope(0)
       , fValidSubstitutionGroups(0)
       , fIDRefList(0)
  +    , fMemoryManager(manager)
       , fValidated(false)
  +    , fDatatypeRegistry(manager)
   {
       //
       //  Init all the pool members.
  @@ -138,13 +143,13 @@
       //  <TBD> Investigate what the optimum values would be for the various
       //  pools.
       //
  -    fElemDeclPool = new RefHash3KeysIdPool<SchemaElementDecl>(109);
  +    fElemDeclPool = new (fMemoryManager) RefHash3KeysIdPool<SchemaElementDecl>(109);
   
       try {
  -        fElemNonDeclPool = new RefHash3KeysIdPool<SchemaElementDecl>(29);
  -        fGroupElemDeclPool = new RefHash3KeysIdPool<SchemaElementDecl>(109, false);
  +        fElemNonDeclPool = new (fMemoryManager) RefHash3KeysIdPool<SchemaElementDecl>(29);
  +        fGroupElemDeclPool = new (fMemoryManager) RefHash3KeysIdPool<SchemaElementDecl>(109, false);
           fNotationDeclPool = new NameIdPool<XMLNotationDecl>(109);
  -        fIDRefList = new RefHashTableOf<XMLRefInfo>(29);
  +        fIDRefList = new (fMemoryManager) RefHashTableOf<XMLRefInfo>(29);
           fDatatypeRegistry.expandRegistryToFullSchemaSet();
   
           //
  @@ -183,7 +188,15 @@
       // if not, then add this in
       if (!retVal)
       {
  -        retVal = new SchemaElementDecl(prefixName, baseName, uriId, SchemaElementDecl::Any);
  +        retVal = new (fMemoryManager) SchemaElementDecl
  +        (
  +            prefixName
  +            , baseName
  +            , uriId
  +            , SchemaElementDecl::Any
  +            , Grammar::TOP_LEVEL_SCOPE
  +            , fMemoryManager
  +        );
           const unsigned int elemId = fElemNonDeclPool->put((void*)retVal->getBaseName(), uriId, scope, retVal);
           retVal->setId(elemId);
           wasAdded = true;
  @@ -202,7 +215,15 @@
           , unsigned int          scope
           , const bool            notDeclared)
   {
  -    SchemaElementDecl* retVal = new SchemaElementDecl(prefixName, baseName, uriId, SchemaElementDecl::Any);
  +    SchemaElementDecl* retVal = new (fMemoryManager) SchemaElementDecl
  +    (
  +        prefixName
  +        , baseName
  +        , uriId
  +        , SchemaElementDecl::Any
  +        , Grammar::TOP_LEVEL_SCOPE
  +        , fMemoryManager
  +    );
       const unsigned int elemId = (notDeclared) ? fElemNonDeclPool->put((void*)retVal->getBaseName(), uriId, scope, retVal)
                                                 : fElemDeclPool->put((void*)retVal->getBaseName(), uriId, scope, retVal);
       retVal->setId(elemId);
  @@ -228,7 +249,7 @@
       delete fElemNonDeclPool;
       delete fGroupElemDeclPool;
       delete fNotationDeclPool;
  -    delete [] fTargetNamespace;
  +    fMemoryManager->deallocate(fTargetNamespace);//delete [] fTargetNamespace;
       delete fAttributeDeclRegistry;
       delete fComplexTypeRegistry;
       delete fGroupInfoRegistry;
  
  
  
  1.6       +11 -5     xml-xerces/c/src/xercesc/validators/schema/SchemaGrammar.hpp
  
  Index: SchemaGrammar.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaGrammar.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- SchemaGrammar.hpp	4 Nov 2002 14:49:41 -0000	1.5
  +++ SchemaGrammar.hpp	15 May 2003 18:57:27 -0000	1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2003/05/15 18:57:27  knoaman
  + * Partial implementation of the configurable memory manager.
  + *
    * Revision 1.5  2002/11/04 14:49:41  tng
    * C++ Namespace Support.
    *
  @@ -159,7 +162,7 @@
       // -----------------------------------------------------------------------
       //  Constructors and Destructor
       // -----------------------------------------------------------------------
  -    SchemaGrammar();
  +    SchemaGrammar(MemoryManager* const manager);
       virtual ~SchemaGrammar();
   
       // -----------------------------------------------------------------------
  @@ -351,11 +354,12 @@
       RefHashTableOf<ComplexTypeInfo>*       fComplexTypeRegistry;
       RefHashTableOf<XercesGroupInfo>*       fGroupInfoRegistry;
       RefHashTableOf<XercesAttGroupInfo>*    fAttGroupInfoRegistry;
  -    DatatypeValidatorFactory               fDatatypeRegistry;
       NamespaceScope*                        fNamespaceScope;
       RefHash2KeysTableOf<ElemVector>*       fValidSubstitutionGroups;
       RefHashTableOf<XMLRefInfo>*            fIDRefList;
  +    MemoryManager*                         fMemoryManager;
       bool                                   fValidated;
  +    DatatypeValidatorFactory               fDatatypeRegistry;
   };
   
   
  @@ -415,9 +419,11 @@
   // -----------------------------------------------------------------------
   //  Setter methods
   // -----------------------------------------------------------------------
  -inline void SchemaGrammar::setTargetNamespace(const XMLCh* const targetNamespace) {
  -    delete [] fTargetNamespace;
  -    fTargetNamespace = XMLString::replicate(targetNamespace);
  +inline void SchemaGrammar::setTargetNamespace(const XMLCh* const targetNamespace)
  +{
  +    if (fTargetNamespace)
  +        fMemoryManager->deallocate(fTargetNamespace);//delete [] fTargetNamespace;
  +    fTargetNamespace = XMLString::replicate(targetNamespace, fMemoryManager);
   }
   
   inline void
  
  
  
  1.13      +2 -2      xml-xerces/c/src/xercesc/validators/schema/SchemaInfo.hpp
  
  Index: SchemaInfo.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaInfo.hpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- SchemaInfo.hpp	17 Dec 2002 17:17:58 -0000	1.12
  +++ SchemaInfo.hpp	15 May 2003 18:57:27 -0000	1.13
  @@ -83,7 +83,7 @@
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  -class VALIDATORS_EXPORT SchemaInfo
  +class VALIDATORS_EXPORT SchemaInfo : public XMemory
   {
   public:
   
  
  
  
  1.29      +6 -1      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.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- SchemaValidator.cpp	6 Feb 2003 13:51:55 -0000	1.28
  +++ SchemaValidator.cpp	15 May 2003 18:57:27 -0000	1.29
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.29  2003/05/15 18:57:27  knoaman
  + * Partial implementation of the configurable memory manager.
  + *
    * Revision 1.28  2003/02/06 13:51:55  gareth
    * fixed bug with multiple attributes being validated by the same union type.
    *
  @@ -251,9 +254,11 @@
   // ---------------------------------------------------------------------------
   //  SchemaValidator: Constructors and Destructor
   // ---------------------------------------------------------------------------
  -SchemaValidator::SchemaValidator(XMLErrorReporter* const errReporter) :
  +SchemaValidator::SchemaValidator( XMLErrorReporter* const errReporter
  +                                , MemoryManager* const    manager) :
   
       XMLValidator(errReporter)
  +    , fMemoryManager(manager)
       , fGrammarResolver(0)
       , fSchemaGrammar(0)
       , fTrailing(false)
  
  
  
  1.14      +24 -18    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.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- SchemaValidator.hpp	20 Jan 2003 19:04:48 -0000	1.13
  +++ SchemaValidator.hpp	15 May 2003 18:57:27 -0000	1.14
  @@ -1,7 +1,7 @@
   /*
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2001-2003 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.14  2003/05/15 18:57:27  knoaman
  + * Partial implementation of the configurable memory manager.
  + *
    * Revision 1.13  2003/01/20 19:04:48  knoaman
    * Fix for particle derivation checking.
    *
  @@ -135,19 +138,19 @@
   #if !defined(SCHEMAVALIDATOR_HPP)
   #define SCHEMAVALIDATOR_HPP
   
  -#include <xercesc/framework/XMLBuffer.hpp>
   #include <xercesc/framework/XMLValidator.hpp>
  -#include <xercesc/util/RefVectorOf.hpp>
  +#include <xercesc/framework/XMLBuffer.hpp>
   #include <xercesc/util/ValueStackOf.hpp>
  -#include <xercesc/validators/common/GrammarResolver.hpp>
   #include <xercesc/validators/common/ContentSpecNode.hpp>
  -#include <xercesc/validators/datatype/DatatypeValidator.hpp>
  -#include <xercesc/validators/schema/SchemaElementDecl.hpp>
   #include <xercesc/validators/schema/SchemaGrammar.hpp>
   #include <xercesc/validators/schema/XSDErrorReporter.hpp>
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  +class GrammarResolver;
  +class DatatypeValidator;
  +class SchemaElementDecl;
  +
   //
   //  This is a derivative of the abstract validator interface. This class
   //  implements a validator that supports standard XML Schema semantics.
  @@ -160,7 +163,11 @@
       // -----------------------------------------------------------------------
       //  Constructors and Destructor
       // -----------------------------------------------------------------------
  -    SchemaValidator(XMLErrorReporter* const errReporter = 0);
  +    SchemaValidator
  +    (
  +          XMLErrorReporter* const errReporter// = 0
  +        , MemoryManager* const    manager
  +    );
       virtual ~SchemaValidator();
   
       // -----------------------------------------------------------------------
  @@ -368,17 +375,16 @@
       //  fTypeStack
       //      Stack of complex type declarations.
       // -----------------------------------------------------------------------
  -    SchemaGrammar* fSchemaGrammar;
  -    GrammarResolver* fGrammarResolver;
  -    QName* fXsiType;
  -    bool fNil;
  -
  -    DatatypeValidator* fXsiTypeValidator;
  -
  -    XMLBuffer fDatatypeBuffer;
  -    bool fTrailing;
  -    bool fSeenId;
  -    XSDErrorReporter fSchemaErrorReporter;
  +    MemoryManager*                  fMemoryManager;
  +    SchemaGrammar*                  fSchemaGrammar;
  +    GrammarResolver*                fGrammarResolver;
  +    QName*                          fXsiType;
  +    bool                            fNil;
  +    DatatypeValidator*              fXsiTypeValidator;
  +    XMLBuffer                       fDatatypeBuffer;
  +    bool                            fTrailing;
  +    bool                            fSeenId;
  +    XSDErrorReporter                fSchemaErrorReporter;
       ValueStackOf<ComplexTypeInfo*>* fTypeStack;
   };
   
  
  
  
  1.71      +107 -96   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.70
  retrieving revision 1.71
  diff -u -r1.70 -r1.71
  --- TraverseSchema.cpp	14 May 2003 14:42:34 -0000	1.70
  +++ TraverseSchema.cpp	15 May 2003 18:57:27 -0000	1.71
  @@ -195,7 +195,8 @@
                                 , XMLScanner* const      xmlScanner
                                 , const XMLCh* const     schemaURL
                                 , XMLEntityHandler* const  entityHandler
  -                              , XMLErrorReporter* const errorReporter)
  +                              , XMLErrorReporter* const errorReporter
  +                              , MemoryManager* const    manager)
       : fFullConstraintChecking(false)
       , fTargetNSURI(-1)
       , fEmptyNamespaceURI(-1)
  @@ -238,6 +239,8 @@
       , fParser(0)
       , fPreprocessedNodes(0)
       , fLocator(0)
  +    , fMemoryManager(manager)
  +    , fAttributeCheck(manager)
   {
   
       try {
  @@ -318,7 +321,7 @@
   
       if (fComplexTypeRegistry == 0 ) {
   
  -        fComplexTypeRegistry = new RefHashTableOf<ComplexTypeInfo>(29);
  +        fComplexTypeRegistry = new (fMemoryManager) RefHashTableOf<ComplexTypeInfo>(29);
           fSchemaGrammar->setComplexTypeRegistry(fComplexTypeRegistry);
       }
   
  @@ -326,7 +329,7 @@
   
       if (fGroupRegistry == 0 ) {
   
  -        fGroupRegistry = new RefHashTableOf<XercesGroupInfo>(13);
  +        fGroupRegistry = new (fMemoryManager) RefHashTableOf<XercesGroupInfo>(13);
           fSchemaGrammar->setGroupInfoRegistry(fGroupRegistry);
       }
   
  @@ -334,7 +337,7 @@
   
       if (fAttGroupRegistry == 0 ) {
   
  -        fAttGroupRegistry = new RefHashTableOf<XercesAttGroupInfo>(13);
  +        fAttGroupRegistry = new (fMemoryManager) RefHashTableOf<XercesAttGroupInfo>(13);
           fSchemaGrammar->setAttGroupInfoRegistry(fAttGroupRegistry);
       }
   
  @@ -342,7 +345,7 @@
   
       if (fAttributeDeclRegistry == 0) {
   
  -        fAttributeDeclRegistry = new RefHashTableOf<XMLAttDef>(29);
  +        fAttributeDeclRegistry = new (fMemoryManager) RefHashTableOf<XMLAttDef>(29);
           fSchemaGrammar->setAttributeDeclRegistry(fAttributeDeclRegistry);
       }
   
  @@ -350,7 +353,7 @@
   
       if (fNamespaceScope == 0) {
   
  -        fNamespaceScope = new NamespaceScope();
  +        fNamespaceScope = new (fMemoryManager) NamespaceScope();
           fNamespaceScope->reset(fEmptyNamespaceURI);
           fSchemaGrammar->setNamespaceScope(fNamespaceScope);
       }
  @@ -359,7 +362,7 @@
   
       if (!fValidSubstitutionGroups) {
   
  -        fValidSubstitutionGroups = new RefHash2KeysTableOf<ElemVector>(29);
  +        fValidSubstitutionGroups = new (fMemoryManager) RefHash2KeysTableOf<ElemVector>(29);
           fSchemaGrammar->setValidSubstitutionGroups(fValidSubstitutionGroups);
       }
   
  @@ -375,7 +378,7 @@
       fAttributeCheck.setIDRefList(fSchemaGrammar->getIDRefList());
   
       // Save current schema info
  -    SchemaInfo* currInfo = new SchemaInfo(0, 0, 0, fTargetNSURI, fScopeCount,
  +    SchemaInfo* currInfo = new (fMemoryManager) SchemaInfo(0, 0, 0, fTargetNSURI, fScopeCount,
                                             fNamespaceScope->increaseDepth(),
                                             XMLString::replicate(schemaURL),
                                             fTargetNSURIString, schemaRoot);
  @@ -513,7 +516,7 @@
       // Parse input source
       // ------------------------------------------------------------------
       if (!fParser)
  -        fParser = new XSDDOMParser;
  +        fParser = new (fMemoryManager) XSDDOMParser;
   
       fParser->setValidationScheme(XercesDOMParser::Val_Never);
       fParser->setDoNamespaces(true);
  @@ -565,7 +568,7 @@
               // --------------------------------------------------------
               SchemaInfo* saveInfo = fSchemaInfo;
   
  -            fSchemaInfo = new SchemaInfo(0, 0, 0, fTargetNSURI, fScopeCount,
  +            fSchemaInfo = new (fMemoryManager) SchemaInfo(0, 0, 0, fTargetNSURI, fScopeCount,
                                            fNamespaceScope->increaseDepth(),
                                            XMLString::replicate(includeURL),
                                            fTargetNSURIString, root);
  @@ -691,7 +694,7 @@
       // Parse input source
       // ------------------------------------------------------------------
       if (!fParser)
  -        fParser = new XSDDOMParser;
  +        fParser = new (fMemoryManager) XSDDOMParser;
   
       fParser->setValidationScheme(XercesDOMParser::Val_Never);
       fParser->setDoNamespaces(true);
  @@ -735,7 +738,7 @@
               // Preprocess new schema
               // --------------------------------------------------------
               SchemaInfo* saveInfo = fSchemaInfo;
  -            fSchemaGrammar = new SchemaGrammar();
  +            fSchemaGrammar = new (fMemoryManager) SchemaGrammar(fMemoryManager);
               preprocessSchema(root, importURL);
               fPreprocessedNodes->put((void*) elem, fSchemaInfo);
   
  @@ -804,7 +807,7 @@
       }
   
       if (!fRedefineComponents) {
  -        fRedefineComponents = new RefHash2KeysTableOf<XMLCh>(13, false);
  +        fRedefineComponents = new (fMemoryManager) RefHash2KeysTableOf<XMLCh>(13, false);
       }
   
       SchemaInfo* redefinedInfo = fSchemaInfo;
  @@ -882,7 +885,7 @@
                   continue;
               }
   
  -            contentSpecNode = new ContentSpecNode(eltQName, false);
  +            contentSpecNode = new (fMemoryManager) ContentSpecNode(eltQName, false);
               seeParticle = true;
           }
           else if (XMLString::equals(childName, SchemaSymbols::fgELT_GROUP)) {
  @@ -905,7 +908,7 @@
                   continue;
               }
   
  -            contentSpecNode = new ContentSpecNode(*contentSpecNode);
  +            contentSpecNode = new (fMemoryManager) ContentSpecNode(*contentSpecNode);
               seeParticle = true;
           }
           else if (XMLString::equals(childName, SchemaSymbols::fgELT_CHOICE)) {
  @@ -942,13 +945,13 @@
               right = contentSpecNode;
           }
           else {
  -            left = new ContentSpecNode((ContentSpecNode::NodeTypes) modelGroupType, left, right);
  +            left = new (fMemoryManager) ContentSpecNode((ContentSpecNode::NodeTypes) modelGroupType, left, right);
               right = contentSpecNode;
           }
       }
   
       if (hadContent) {
  -        left = new ContentSpecNode((ContentSpecNode::NodeTypes) modelGroupType, left, right);
  +        left = new (fMemoryManager) ContentSpecNode((ContentSpecNode::NodeTypes) modelGroupType, left, right);
       }
   
       return left;
  @@ -1163,7 +1166,7 @@
           // ------------------------------------------------------------------
           // Register the type
           // ------------------------------------------------------------------
  -        typeInfo = new ComplexTypeInfo();
  +        typeInfo = new (fMemoryManager) ComplexTypeInfo(fMemoryManager);
           if(isAnonymous) {
               typeInfo->setAnonymous();
           }
  @@ -1366,7 +1369,7 @@
       ContentSpecNode* specNode = 0;
       XercesGroupInfo* saveGroupInfo = fCurrentGroupInfo;
   
  -    groupInfo = new XercesGroupInfo();
  +    groupInfo = new (fMemoryManager) XercesGroupInfo(fMemoryManager);
       fCurrentGroupStack->addElement(nameIndex);
       fCurrentGroupInfo = groupInfo;
   
  @@ -1512,7 +1515,7 @@
       // Process contents of global attributeGroups
       // ------------------------------------------------------------------
       XercesAttGroupInfo* saveAttGroupInfo = fCurrentAttGroupInfo;
  -    XercesAttGroupInfo* attGroupInfo = new XercesAttGroupInfo();
  +    XercesAttGroupInfo* attGroupInfo = new (fMemoryManager) XercesAttGroupInfo(fMemoryManager);
   
       fDeclStack->addElement(elem);
       fCurrentAttGroupInfo = attGroupInfo;
  @@ -1671,14 +1674,14 @@
   
       if ((!nameSpace || !*nameSpace)
           || XMLString::equals(nameSpace, SchemaSymbols::fgATTVAL_TWOPOUNDANY)) {
  -        retSpecNode = new ContentSpecNode(new QName(XMLUni::fgZeroLenString,
  +        retSpecNode = new (fMemoryManager) ContentSpecNode(new (fMemoryManager) QName(XMLUni::fgZeroLenString,
                                                       XMLUni::fgZeroLenString,
                                                       fEmptyNamespaceURI),
                                             false);
           retSpecNode->setType(anyType);
       }
       else if (XMLString::equals(nameSpace, SchemaSymbols::fgATTVAL_TWOPOUNDOTHER)) {
  -        retSpecNode = new ContentSpecNode(new QName(XMLUni::fgZeroLenString,
  +        retSpecNode = new (fMemoryManager) ContentSpecNode(new (fMemoryManager) QName(XMLUni::fgZeroLenString,
                                                       XMLUni::fgZeroLenString,
                                                       fTargetNSURI),
                                             false);
  @@ -1720,7 +1723,7 @@
   
               uriList.addElement(uriIndex);
   
  -            firstNode = new ContentSpecNode(new QName(XMLUni::fgZeroLenString,
  +            firstNode = new (fMemoryManager) ContentSpecNode(new (fMemoryManager) QName(XMLUni::fgZeroLenString,
                                                         XMLUni::fgZeroLenString,
                                                         uriIndex),
                                               false);
  @@ -1730,7 +1733,7 @@
                   secondNode = firstNode;
               }
               else {
  -                secondNode = new ContentSpecNode(ContentSpecNode::Choice, secondNode, firstNode);
  +                secondNode = new (fMemoryManager) ContentSpecNode(ContentSpecNode::Choice, secondNode, firstNode);
               }
           }
   
  @@ -1787,7 +1790,7 @@
                   continue;
               }
   
  -            contentSpecNode = new ContentSpecNode(eltQName, false);
  +            contentSpecNode = new (fMemoryManager) ContentSpecNode(eltQName, false);
               checkMinMax(contentSpecNode, child, All_Element);
           }
           else {
  @@ -1805,13 +1808,13 @@
               right = contentSpecNode;
           }
           else {
  -            left = new ContentSpecNode(ContentSpecNode::All, left, right);
  +            left = new (fMemoryManager) ContentSpecNode(ContentSpecNode::All, left, right);
               right = contentSpecNode;
           }
       }
   
       if (hadContent) {
  -        left = new ContentSpecNode(ContentSpecNode::All, left, right);
  +        left = new (fMemoryManager) ContentSpecNode(ContentSpecNode::All, left, right);
       }
   
       return left;
  @@ -2114,7 +2117,7 @@
       }
   
       // create SchemaAttDef
  -    SchemaAttDef* attDef = new SchemaAttDef(XMLUni::fgZeroLenString, name, uriIndex, attType);
  +    SchemaAttDef* attDef = new (fMemoryManager) SchemaAttDef(XMLUni::fgZeroLenString, name, uriIndex, attType);
   
       attDef->setDatatypeValidator(dv);
   
  @@ -2209,7 +2212,7 @@
       if (topLevel) {
   
           if (fSchemaGrammar->getElemDecl(fTargetNSURI, name, 0, Grammar::TOP_LEVEL_SCOPE) != 0) {
  -            return new QName(name, fTargetNSURI);
  +            return new (fMemoryManager) QName(name, fTargetNSURI);
           }
       }
   
  @@ -2450,20 +2453,20 @@
                                       subsElements = aGrammar->getValidSubstitutionGroups()->get(subsElemBaseName, subsElemURI);
   
                                       if (subsElements) {
  -                                        subsElements = new ValueVectorOf<SchemaElementDecl*>(*subsElements);
  +                                        subsElements = new (fMemoryManager) ValueVectorOf<SchemaElementDecl*>(*subsElements);
                                           fValidSubstitutionGroups->put(subsElemBaseName, subsElemURI, subsElements);
                                       }
                                       else if (fSchemaInfo->circularImportExist(subsElemURI)) {
   
                                           aGrammar->getValidSubstitutionGroups()->put(
  -                                        subsElemBaseName, subsElemURI, new ValueVectorOf<SchemaElementDecl*>(8));
  +                                        subsElemBaseName, subsElemURI, new (fMemoryManager) ValueVectorOf<SchemaElementDecl*>(8));
                                       }
                                   }
                               }
   
                               if (!subsElements) {
   
  -                                subsElements = new ValueVectorOf<SchemaElementDecl*>(8);
  +                                subsElements = new (fMemoryManager) ValueVectorOf<SchemaElementDecl*>(8);
                                   fValidSubstitutionGroups->put(subsElemBaseName, subsElemURI, subsElements);
                               }
   
  @@ -2585,7 +2588,7 @@
           elemDecl->setContentSpec(contentSpecNode);
   
           if (isAnyType) {
  -            elemDecl->setAttWildCard(new SchemaAttDef(XMLUni::fgZeroLenString,
  +            elemDecl->setAttWildCard(new (fMemoryManager) SchemaAttDef(XMLUni::fgZeroLenString,
                                                         XMLUni::fgZeroLenString,
                                                         fEmptyNamespaceURI, XMLAttDef::Any_Any,
                                                         XMLAttDef::ProcessContents_Lax));
  @@ -2607,7 +2610,7 @@
               else {
   
                   if (!icNodes) {
  -                    icNodes = new ValueVectorOf<DOMElement*>(8);
  +                    icNodes = new (fMemoryManager) ValueVectorOf<DOMElement*>(8);
                   }
   
                   icNodes->addElement(ic);
  @@ -2621,9 +2624,9 @@
   
               if (!fIC_ElementsNS) {
   
  -                fIC_ElementsNS = new RefHashTableOf<ElemVector>(13);
  -                fIC_NamespaceDepthNS = new RefHashTableOf<ValueVectorOf<unsigned int> >(13);
  -                fIC_NodeListNS = new RefHashTableOf<ValueVectorOf<DOMElement*> >(29, true, new HashPtr());
  +                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());
               }
   
               if (fIC_ElementsNS->containsKey(fTargetNSURIString)) {
  @@ -2634,8 +2637,8 @@
   
               if (!fIC_Elements) {
   
  -                fIC_Elements = new ValueVectorOf<SchemaElementDecl*>(8);
  -                fIC_NamespaceDepth = new ValueVectorOf<unsigned int>(8);
  +                fIC_Elements = new (fMemoryManager) ValueVectorOf<SchemaElementDecl*>(8);
  +                fIC_NamespaceDepth = new (fMemoryManager) ValueVectorOf<unsigned int>(8);
                   fIC_ElementsNS->put((void*) fTargetNSURIString, fIC_Elements);
                   fIC_NamespaceDepthNS->put((void*) fTargetNSURIString, fIC_NamespaceDepth);
               }
  @@ -2646,7 +2649,7 @@
           }
       }
   
  -    return new QName(*elemDecl->getElementName());
  +    return new (fMemoryManager) QName(*elemDecl->getElementName());
   }
   
   const XMLCh* TraverseSchema::traverseNotationDecl(const DOMElement* const elem) {
  @@ -2904,7 +2907,7 @@
                   fAttributeCheck.checkAttributes(content, scope, this);
   
                   if (facets == 0) {
  -                    facets = new RefHashTableOf<KVStringPair>(29, true);
  +                    facets = new (fMemoryManager) RefHashTableOf<KVStringPair>(29, true);
                   }
   
                   if (XMLString::equals(facetName, SchemaSymbols::fgELT_ENUMERATION)) {
  @@ -2914,7 +2917,7 @@
                       // to get the qualified name first before adding it to the
                       // enum buffer
                       if (!enums) {
  -                        enums = new RefArrayVectorOf<XMLCh>(8, true);
  +                        enums = new (fMemoryManager) RefArrayVectorOf<XMLCh>(8, true);
                       }
   
                       if (baseValidator->getType() == DatatypeValidator::NOTATION) {
  @@ -2965,7 +2968,7 @@
                           else {
   
                               const XMLCh* facetStr = fStringPool->getValueForId(fStringPool->addOrFind(facetName));
  -                            facets->put((void*) facetStr, new KVStringPair(facetStr, attValue));
  +                            facets->put((void*) facetStr, new (fMemoryManager) KVStringPair(facetStr, attValue));
                               checkFixedFacet(content, facetStr, baseValidator, fixedFlag);
                           }
                       }
  @@ -2982,14 +2985,14 @@
   
           if (!pattern.isEmpty()) {
               facets->put((void*) SchemaSymbols::fgELT_PATTERN,
  -                        new KVStringPair(SchemaSymbols::fgELT_PATTERN, pattern.getRawBuffer()));
  +                        new (fMemoryManager) KVStringPair(SchemaSymbols::fgELT_PATTERN, pattern.getRawBuffer()));
           }
   
           if (fixedFlag) {
   
               XMLString::binToText(fixedFlag, fixedFlagStr, 15, 10);
               facets->put((void*) SchemaSymbols::fgATT_FIXED,
  -                        new KVStringPair(SchemaSymbols::fgATT_FIXED, fixedFlagStr));
  +                        new (fMemoryManager) KVStringPair(SchemaSymbols::fgATT_FIXED, fixedFlagStr));
           }
   
           try {
  @@ -3026,7 +3029,7 @@
       int                             size = 1;
       const XMLCh*                    baseTypeName = getElementAttValue(contentElem, SchemaSymbols::fgATT_MEMBERTYPES);
       DatatypeValidator*              baseValidator = 0;
  -    RefVectorOf<DatatypeValidator>* validators = new RefVectorOf<DatatypeValidator>(4, false);
  +    RefVectorOf<DatatypeValidator>* validators = new (fMemoryManager) RefVectorOf<DatatypeValidator>(4, false);
       Janitor<DVRefVector>            janValidators(validators);
       DOMElement*                     content = 0;
   
  @@ -3343,13 +3346,13 @@
                       const XMLCh* attValue = content->getAttribute(SchemaSymbols::fgATT_VALUE);
   
                       if (facets == 0) {
  -                        facets = new RefHashTableOf<KVStringPair>(29, true);
  +                        facets = new (fMemoryManager) RefHashTableOf<KVStringPair>(29, true);
                       }
   
                       if (XMLString::equals(facetName, SchemaSymbols::fgELT_ENUMERATION)) {
   
                           if (!enums) {
  -                            enums = new RefArrayVectorOf<XMLCh>(8, true);
  +                            enums = new (fMemoryManager) RefArrayVectorOf<XMLCh>(8, true);
                           }
   
                           enums->addElement(XMLString::replicate(attValue));
  @@ -3377,7 +3380,7 @@
                               const XMLCh* facetNameStr =
                                   fStringPool->getValueForId(fStringPool->addOrFind(facetName));
   
  -                            facets->put((void*) facetNameStr, new KVStringPair(facetNameStr, attValue));
  +                            facets->put((void*) facetNameStr, new (fMemoryManager) KVStringPair(facetNameStr, attValue));
                               checkFixedFacet(content, facetNameStr, typeInfo->getBaseDatatypeValidator(), fixedFlag);
                           }
                       }
  @@ -3392,7 +3395,7 @@
                       facets->put
                       (
                           (void*) SchemaSymbols::fgELT_PATTERN,
  -                        new KVStringPair
  +                        new (fMemoryManager) KVStringPair
                               (
                                   SchemaSymbols::fgELT_PATTERN,
                                   pattern.getRawBuffer()
  @@ -3404,7 +3407,7 @@
   
                       XMLString::binToText(fixedFlag, fixedFlagStr, 15, 10);
                       facets->put((void*) SchemaSymbols::fgATT_FIXED,
  -                        new KVStringPair(SchemaSymbols::fgATT_FIXED, fixedFlagStr));
  +                        new (fMemoryManager) KVStringPair(SchemaSymbols::fgATT_FIXED, fixedFlagStr));
                   }
   
                   try {
  @@ -3707,7 +3710,7 @@
       // ------------------------------------------------------------------
       // Create wildcard attribute
       // ------------------------------------------------------------------
  -    SchemaAttDef* attDef = new SchemaAttDef(XMLUni::fgZeroLenString,
  +    SchemaAttDef* attDef = new (fMemoryManager) SchemaAttDef(XMLUni::fgZeroLenString,
                                               XMLUni::fgZeroLenString,
                                               uriIndex, attType, attDefType);
   
  @@ -3751,7 +3754,7 @@
   
   
       if (!fIdentityConstraintNames) {
  -        fIdentityConstraintNames = new RefHash2KeysTableOf<IdentityConstraint>(29, false);
  +        fIdentityConstraintNames = new (fMemoryManager) RefHash2KeysTableOf<IdentityConstraint>(29, false);
       }
   
       if (fIdentityConstraintNames->containsKey(name, fTargetNSURI)) {
  @@ -3760,7 +3763,7 @@
           return;
       }
   
  -    IC_Key* icKey = new IC_Key(name, elemDecl->getBaseName());
  +    IC_Key* icKey = new (fMemoryManager) IC_Key(name, elemDecl->getBaseName(), fMemoryManager);
       Janitor<IC_Key> janKey(icKey);
   
       fIdentityConstraintNames->put((void*) name, fTargetNSURI, icKey);
  @@ -3812,7 +3815,7 @@
       }
   
       if (!fIdentityConstraintNames) {
  -        fIdentityConstraintNames = new RefHash2KeysTableOf<IdentityConstraint>(29, false);
  +        fIdentityConstraintNames = new (fMemoryManager) RefHash2KeysTableOf<IdentityConstraint>(29, false);
       }
   
       if (fIdentityConstraintNames->containsKey(name, fTargetNSURI)) {
  @@ -3821,7 +3824,7 @@
           return;
       }
   
  -    IC_Unique* icUnique = new IC_Unique(name, elemDecl->getBaseName());
  +    IC_Unique* icUnique = new (fMemoryManager) IC_Unique(name, elemDecl->getBaseName(), fMemoryManager);
       Janitor<IC_Unique> janUnique(icUnique);
   
       fIdentityConstraintNames->put((void*) name, fTargetNSURI, icUnique);
  @@ -3895,7 +3898,7 @@
           return;
       }
   
  -    IC_KeyRef* icKeyRef = new IC_KeyRef(name, elemDecl->getBaseName(), icKey);
  +    IC_KeyRef* icKeyRef = new (fMemoryManager) IC_KeyRef(name, elemDecl->getBaseName(), icKey, fMemoryManager);
       Janitor<IC_KeyRef> janKeyRef(icKeyRef);
   
       fIdentityConstraintNames->put((void*) name, fTargetNSURI, icKeyRef);
  @@ -3992,8 +3995,8 @@
       // ------------------------------------------------------------------
       try {
   
  -        XercesXPath* sXPath = new XercesXPath(fBuffer.getRawBuffer(), fStringPool, fNamespaceScope, fEmptyNamespaceURI, true);
  -        IC_Selector* icSelector = new IC_Selector(sXPath, ic);
  +        XercesXPath* sXPath = new (fMemoryManager) XercesXPath(fBuffer.getRawBuffer(), fStringPool, fNamespaceScope, fEmptyNamespaceURI, true);
  +        IC_Selector* icSelector = new (fMemoryManager) IC_Selector(sXPath, ic);
           ic->setSelector(icSelector);
       }
       catch (const XPathException& e) {
  @@ -4044,8 +4047,8 @@
   
               try {
   
  -                XercesXPath* fieldXPath = new XercesXPath(fBuffer.getRawBuffer(), fStringPool, fNamespaceScope, fEmptyNamespaceURI);
  -                IC_Field* icField = new IC_Field(fieldXPath, ic);
  +                XercesXPath* fieldXPath = new (fMemoryManager) XercesXPath(fBuffer.getRawBuffer(), fStringPool, fNamespaceScope, fEmptyNamespaceURI);
  +                IC_Field* icField = new (fMemoryManager) IC_Field(fieldXPath, ic);
                   ic->addField(icField);
               }
               catch (const XPathException& e) {
  @@ -4497,7 +4500,7 @@
       const XMLCh* prefix = getPrefix(refName);
       const XMLCh* localPart = getLocalPart(refName);
       const XMLCh* uriStr = resolvePrefixToURI(elem, prefix);
  -    QName*       eltName = new QName(prefix , localPart, uriStr != 0
  +    QName*       eltName = new (fMemoryManager) QName(prefix , localPart, uriStr != 0
                                          ? fURIStringPool->addOrFind(uriStr)
                                          : fEmptyNamespaceURI);
   
  @@ -5197,10 +5200,15 @@
       }
   
       const XMLCh* prefix = getPrefix(name);
  -    SchemaElementDecl* elemDecl =
  -        new SchemaElementDecl(prefix, name, uriIndex,
  -                              (SchemaElementDecl::ModelTypes) elemType,
  -                              enclosingScope);
  +    SchemaElementDecl* elemDecl = new (fMemoryManager) SchemaElementDecl
  +    (
  +        prefix
  +        , name
  +        , uriIndex
  +        , (SchemaElementDecl::ModelTypes) elemType
  +        , enclosingScope
  +        , fMemoryManager
  +    );
   
       elemDecl->setFinalSet(finalSet);
       elemDecl->setBlockSet(blockSet);
  @@ -5352,7 +5360,7 @@
       bool required = XMLString::equals(useAttr,SchemaSymbols::fgATTVAL_REQUIRED);
       bool prohibited = XMLString::equals(useAttr,SchemaSymbols::fgATTVAL_PROHIBITED);
       QName* attQName = refAttDef->getAttName();
  -    SchemaAttDef* attDef = new SchemaAttDef(attQName->getPrefix(),
  +    SchemaAttDef* attDef = new (fMemoryManager) SchemaAttDef(attQName->getPrefix(),
                                               attQName->getLocalPart(),
                                               attQName->getURI(),
                                               refAttValue,
  @@ -5598,7 +5606,7 @@
   
                       int contentContext = specNode->hasAllContent() ? Group_Ref_With_All : Not_All_Context;
   
  -                    specNode = new ContentSpecNode(*specNode);
  +                    specNode = new (fMemoryManager) ContentSpecNode(*specNode);
                       checkMinMax(specNode, childElem, contentContext);
                   }
               }
  @@ -5665,7 +5673,7 @@
               if (!specNode) {
   
                   if (baseSpecNode) {
  -                    specNode = new ContentSpecNode(*baseSpecNode);
  +                    specNode = new (fMemoryManager) ContentSpecNode(*baseSpecNode);
                       typeInfo->setContentSpec(specNode);
                       typeInfo->setAdoptContentSpec(true);
                   }
  @@ -5688,8 +5696,8 @@
   
                   typeInfo->setAdoptContentSpec(false);
                   typeInfo->setContentSpec(
  -                    new ContentSpecNode(ContentSpecNode::Sequence,
  -                                        new ContentSpecNode(*baseSpecNode),
  +                    new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence,
  +                                        new (fMemoryManager) ContentSpecNode(*baseSpecNode),
                                           specNode));
                   typeInfo->setAdoptContentSpec(true);
               }
  @@ -5704,7 +5712,7 @@
       // -------------------------------------------------------------
       if (isBaseAnyType && typeDerivedBy == SchemaSymbols::XSD_EXTENSION) {
   
  -        ContentSpecNode* anySpecNode = new ContentSpecNode(new QName(XMLUni::fgZeroLenString,
  +        ContentSpecNode* anySpecNode = new (fMemoryManager) ContentSpecNode(new (fMemoryManager) QName(XMLUni::fgZeroLenString,
                                                                        XMLUni::fgZeroLenString,
                                                                        fEmptyNamespaceURI),
                                                              false);
  @@ -5720,7 +5728,7 @@
           else {
   
               typeInfo->setAdoptContentSpec(false);
  -            typeInfo->setContentSpec(new ContentSpecNode(ContentSpecNode::Sequence, anySpecNode, specNode));
  +            typeInfo->setContentSpec(new (fMemoryManager) ContentSpecNode(ContentSpecNode::Sequence, anySpecNode, specNode));
               typeInfo->setAdoptContentSpec(true);
   
               if (!isMixed) {
  @@ -5740,7 +5748,7 @@
           else {
               // add #PCDATA leaf and set its minOccurs to 0
               ContentSpecNode* pcdataNode =
  -                  new ContentSpecNode(new QName(XMLUni::fgZeroLenString,
  +                  new (fMemoryManager) ContentSpecNode(new (fMemoryManager) QName(XMLUni::fgZeroLenString,
                                                   XMLUni::fgZeroLenString,
                                                   XMLElementDecl::fgPCDataElemId),
                                         false);
  @@ -6019,7 +6027,7 @@
   
                   if (!attGroupWildCard) {
   
  -                    attGroupWildCard = new SchemaAttDef(attGroupInfo->anyAttributeAt(0));
  +                    attGroupWildCard = new (fMemoryManager) SchemaAttDef(attGroupInfo->anyAttributeAt(0));
   
                       for (unsigned int i= 1; i < anyAttCount; i++) {
                           attWildCardIntersection(attGroupWildCard, attGroupInfo->anyAttributeAt(i));
  @@ -6032,7 +6040,7 @@
                       attWildCardIntersection(completeWildCard, attGroupWildCard);
                   }
                   else {
  -                    completeWildCard = new SchemaAttDef(attGroupWildCard);
  +                    completeWildCard = new (fMemoryManager) SchemaAttDef(attGroupWildCard);
                       janCompleteWildCard.reset(completeWildCard);
                   }
               }
  @@ -6062,7 +6070,7 @@
   
           if (isBaseAnyType) {
   
  -            baseAttWildCard = new SchemaAttDef(XMLUni::fgZeroLenString,
  +            baseAttWildCard = new (fMemoryManager) SchemaAttDef(XMLUni::fgZeroLenString,
                                                  XMLUni::fgZeroLenString,
                                                  fEmptyNamespaceURI, XMLAttDef::Any_Any,
                                                  XMLAttDef::ProcessContents_Lax);
  @@ -6098,7 +6106,7 @@
           }
           else {
   
  -            SchemaAttDef* newWildCard = new SchemaAttDef(baseAttWildCard);
  +            SchemaAttDef* newWildCard = new (fMemoryManager) SchemaAttDef(baseAttWildCard);
               typeInfo->setAttWildCard(newWildCard);
           }
       }
  @@ -6145,7 +6153,7 @@
   
               if (attDef.getDefaultType() != XMLAttDef::Prohibited) {
   
  -                SchemaAttDef* newAttDef = new SchemaAttDef(attName->getPrefix(),
  +                SchemaAttDef* newAttDef = new (fMemoryManager) SchemaAttDef(attName->getPrefix(),
                                                              attName->getLocalPart(),
                                                              attName->getURI(),
                                                              attDef.getValue(),
  @@ -6203,13 +6211,13 @@
               else {
                   if (fScanner->getStandardUriConformant() && urlTmp.hasInvalidChar())
                       ThrowXML(MalformedURLException, XMLExcepts::URL_MalformedURL);
  -                srcToFill = new URLInputSource(urlTmp);
  +                srcToFill = new (fMemoryManager) URLInputSource(urlTmp);
               }
           }
           catch(const MalformedURLException& e) {
               // Its not a URL, so lets assume its a local file name if non-standard URI is allowed
               if (!fScanner->getStandardUriConformant())
  -                srcToFill = new LocalFileInputSource(fSchemaInfo->getCurrentSchemaURL(),normalizedURI);
  +                srcToFill = new (fMemoryManager) LocalFileInputSource(fSchemaInfo->getCurrentSchemaURL(),normalizedURI);
               else
                   throw e;
           }
  @@ -6337,7 +6345,7 @@
                   break;
               }
   			
  -            validSubsElements = new ValueVectorOf<SchemaElementDecl*>(*validSubsElements);
  +            validSubsElements = new (fMemoryManager) ValueVectorOf<SchemaElementDecl*>(*validSubsElements);
               fValidSubstitutionGroups->put((void*) chainElemName, chainElemURI, validSubsElements);
           }
   
  @@ -6401,7 +6409,7 @@
                   return;
               }
   			
  -            validSubs = new ValueVectorOf<SchemaElementDecl*>(*validSubs);
  +            validSubs = new (fMemoryManager) ValueVectorOf<SchemaElementDecl*>(*validSubs);
               fValidSubstitutionGroups->put((void*) subsElemName, subsElemURI, validSubs);
           }
   
  @@ -6776,7 +6784,7 @@
                   typeInfo->setAttWithTypeId(true);
               }
   
  -            typeInfo->addAttDef(new SchemaAttDef(attDef));
  +            typeInfo->addAttDef(new (fMemoryManager) SchemaAttDef(attDef));
   
               if (toAttGroup) {
                   toAttGroup->addAttDef(attDef, true);
  @@ -7390,7 +7398,7 @@
       // Parse input source
       // ------------------------------------------------------------------
       if (!fParser)
  -        fParser = new XSDDOMParser;
  +        fParser = new (fMemoryManager) XSDDOMParser;
   
       fParser->setValidationScheme(XercesDOMParser::Val_Never);
       fParser->setDoNamespaces(true);
  @@ -7446,7 +7454,7 @@
           // Update schema information with redefined schema
           // --------------------------------------------------------
           redefSchemaInfo = fSchemaInfo;
  -        fSchemaInfo = new SchemaInfo(0, 0, 0, fTargetNSURI, fScopeCount,
  +        fSchemaInfo = new (fMemoryManager) SchemaInfo(0, 0, 0, fTargetNSURI, fScopeCount,
                                        fNamespaceScope->increaseDepth(),
                                        XMLString::replicate(includeURL),
                                        fTargetNSURIString, root);
  @@ -7917,18 +7925,21 @@
       fDatatypeRegistry = fSchemaGrammar->getDatatypeRegistry();
       fStringPool = fGrammarResolver->getStringPool();
       fEmptyNamespaceURI = fScanner->getEmptyNamespaceId();
  -    fCurrentTypeNameStack = new ValueVectorOf<unsigned int>(8);
  -    fCurrentGroupStack = new ValueVectorOf<unsigned int>(8);
  +    fCurrentTypeNameStack = new (fMemoryManager) ValueVectorOf<unsigned int>(8);
  +    fCurrentGroupStack = new (fMemoryManager) ValueVectorOf<unsigned int>(8);
   
  -    fGlobalDeclarations = new ValueVectorOf<unsigned int>*[ENUM_ELT_SIZE];
  +    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 ValueVectorOf<unsigned int>(8);
  +        fGlobalDeclarations[i] = new (fMemoryManager) ValueVectorOf<unsigned int>(8);
   
  -    fNotationRegistry = new RefHash2KeysTableOf<XMLCh>(13, false);
  -    fSchemaInfoList = new RefHash2KeysTableOf<SchemaInfo>(29);
  -    fPreprocessedNodes = new RefHashTableOf<SchemaInfo>(29, false, new HashPtr());
  +    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 ValueVectorOf<const DOMElement*>(16);
  +    fDeclStack = new (fMemoryManager) ValueVectorOf<const DOMElement*>(16);
   }
   
   void TraverseSchema::cleanUp() {
  @@ -7940,7 +7951,7 @@
       for(unsigned int i=0; i < ENUM_ELT_SIZE; i++)
           delete fGlobalDeclarations[i];
   
  -    delete [] fGlobalDeclarations;
  +    fMemoryManager->deallocate(fGlobalDeclarations);//delete [] fGlobalDeclarations;
   
       delete fNotationRegistry;
       delete fRedefineComponents;
  
  
  
  1.24      +5 -3      xml-xerces/c/src/xercesc/validators/schema/TraverseSchema.hpp
  
  Index: TraverseSchema.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/TraverseSchema.hpp,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- TraverseSchema.hpp	7 Mar 2003 18:17:54 -0000	1.23
  +++ TraverseSchema.hpp	15 May 2003 18:57:27 -0000	1.24
  @@ -107,7 +107,7 @@
   class XMLErrorReporter;
   
   
  -class VALIDATORS_EXPORT TraverseSchema
  +class VALIDATORS_EXPORT TraverseSchema : public XMemory
   {
   public:
       // -----------------------------------------------------------------------
  @@ -123,6 +123,7 @@
           , const XMLCh* const      schemaURL
           , XMLEntityHandler* const entityHandler
           , XMLErrorReporter* const errorReporter
  +        , MemoryManager* const    manager
       );
   
       ~TraverseSchema();
  @@ -773,10 +774,11 @@
       RefHash2KeysTableOf<IdentityConstraint>*       fIdentityConstraintNames;
       RefHash2KeysTableOf<ElemVector>*               fValidSubstitutionGroups;
       RefHash2KeysTableOf<SchemaInfo>*               fSchemaInfoList;
  -    GeneralAttributeCheck                          fAttributeCheck;
       XSDDOMParser*                                  fParser;
       XSDErrorReporter                               fXSDErrorReporter;
       XSDLocator*                                    fLocator;
  +    MemoryManager*                                 fMemoryManager;
  +    GeneralAttributeCheck                          fAttributeCheck;
   
       friend class GeneralAttributeCheck;
   };
  
  
  
  1.9       +4 -3      xml-xerces/c/src/xercesc/validators/schema/XSDDOMParser.cpp
  
  Index: XSDDOMParser.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/XSDDOMParser.cpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- XSDDOMParser.cpp	4 Nov 2002 14:49:42 -0000	1.8
  +++ XSDDOMParser.cpp	15 May 2003 18:57:27 -0000	1.9
  @@ -72,8 +72,9 @@
   // ---------------------------------------------------------------------------
   //  XSDDOMParser: Constructors and Destructor
   // ---------------------------------------------------------------------------
  -XSDDOMParser::XSDDOMParser(XMLValidator* const valToAdopt) :
  -    XercesDOMParser(valToAdopt)
  +XSDDOMParser::XSDDOMParser( XMLValidator* const  valToAdopt
  +                          , MemoryManager* const manager) :
  +    XercesDOMParser(valToAdopt, manager)
       , fSawFatal(false)
       , fUserErrorReporter(0)
   {
  
  
  
  1.7       +6 -2      xml-xerces/c/src/xercesc/validators/schema/XSDDOMParser.hpp
  
  Index: XSDDOMParser.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/XSDDOMParser.hpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- XSDDOMParser.hpp	4 Nov 2002 14:49:42 -0000	1.6
  +++ XSDDOMParser.hpp	15 May 2003 18:57:27 -0000	1.7
  @@ -93,7 +93,11 @@
         * @param valToAdopt Pointer to the validator instance to use. The
         *                   parser is responsible for freeing the memory.
         */
  -    XSDDOMParser(XMLValidator* const valToAdopt = 0);
  +    XSDDOMParser
  +    (
  +          XMLValidator* const  valToAdopt = 0
  +        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
  +    );
   
       /**
         * Destructor
  
  
  
  1.6       +3 -3      xml-xerces/c/src/xercesc/validators/schema/XSDErrorReporter.hpp
  
  Index: XSDErrorReporter.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/XSDErrorReporter.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XSDErrorReporter.hpp	7 Mar 2003 18:17:54 -0000	1.5
  +++ XSDErrorReporter.hpp	15 May 2003 18:57:27 -0000	1.6
  @@ -62,7 +62,7 @@
   #if !defined(XSDERRORREPORTER_HPP)
   #define XSDERRORREPORTER_HPP
   
  -#include <xercesc/util/XercesDefs.hpp>
  +#include <xercesc/util/XMemory.hpp>
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  @@ -73,7 +73,7 @@
   /**
    *  This class reports schema errors
    */
  -class VALIDATORS_EXPORT XSDErrorReporter
  +class VALIDATORS_EXPORT XSDErrorReporter : public XMemory
   {
   public:
       // -----------------------------------------------------------------------
  
  
  
  1.4       +5 -1      xml-xerces/c/src/xercesc/validators/schema/XercesAttGroupInfo.cpp
  
  Index: XercesAttGroupInfo.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/XercesAttGroupInfo.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XercesAttGroupInfo.cpp	4 Nov 2002 14:49:42 -0000	1.3
  +++ XercesAttGroupInfo.cpp	15 May 2003 18:57:27 -0000	1.4
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.4  2003/05/15 18:57:27  knoaman
  + * Partial implementation of the configurable memory manager.
  + *
    * Revision 1.3  2002/11/04 14:49:42  tng
    * C++ Namespace Support.
    *
  @@ -90,11 +93,12 @@
   // ---------------------------------------------------------------------------
   //  XercesAttGroupInfo: Constructors and Destructor
   // ---------------------------------------------------------------------------
  -XercesAttGroupInfo::XercesAttGroupInfo()
  +XercesAttGroupInfo::XercesAttGroupInfo(MemoryManager* const manager)
       : fTypeWithId(false)
       , fAttributes(0)
       , fAnyAttributes(0)
       , fCompleteWildCard(0)
  +    , fMemoryManager(manager)
   {
   
   }
  
  
  
  1.3       +9 -8      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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XercesAttGroupInfo.hpp	4 Nov 2002 14:49:42 -0000	1.2
  +++ XercesAttGroupInfo.hpp	15 May 2003 18:57:27 -0000	1.3
  @@ -1,7 +1,7 @@
   /*
    * The Apache Software License, Version 1.1
    *
  - * Copyright (c) 2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 2001-2003 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -76,13 +76,13 @@
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  -class VALIDATORS_EXPORT XercesAttGroupInfo
  +class VALIDATORS_EXPORT XercesAttGroupInfo : public XMemory
   {
   public:
       // -----------------------------------------------------------------------
       //  Public Constructors/Destructor
       // -----------------------------------------------------------------------
  -    XercesAttGroupInfo();
  +    XercesAttGroupInfo(MemoryManager* const manager);
   	~XercesAttGroupInfo();
   
   	// -----------------------------------------------------------------------
  @@ -126,6 +126,7 @@
       RefVectorOf<SchemaAttDef>* fAttributes;
       RefVectorOf<SchemaAttDef>* fAnyAttributes;
       SchemaAttDef*              fCompleteWildCard;
  +    MemoryManager*             fMemoryManager;
   };
   
   // ---------------------------------------------------------------------------
  @@ -212,11 +213,11 @@
                                                const bool toClone) {
   
       if (!fAttributes) {
  -        fAttributes = new RefVectorOf<SchemaAttDef>(4);
  +        fAttributes = new (fMemoryManager) RefVectorOf<SchemaAttDef>(4);
       }
   
       if (toClone) {
  -        fAttributes->addElement(new SchemaAttDef(toAdd));
  +        fAttributes->addElement(new (fMemoryManager) SchemaAttDef(toAdd));
       }
       else {
           fAttributes->addElement(toAdd);
  @@ -227,11 +228,11 @@
                                                const bool toClone) {
   
       if (!fAnyAttributes) {
  -        fAnyAttributes = new RefVectorOf<SchemaAttDef>(2);
  +        fAnyAttributes = new (fMemoryManager) RefVectorOf<SchemaAttDef>(2);
       }
   
       if (toClone) {
  -        fAnyAttributes->addElement(new SchemaAttDef(toAdd));
  +        fAnyAttributes->addElement(new (fMemoryManager) SchemaAttDef(toAdd));
       }
       else {
           fAnyAttributes->addElement(toAdd);
  
  
  
  1.5       +5 -2      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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XercesGroupInfo.cpp	4 Nov 2002 14:49:42 -0000	1.4
  +++ XercesGroupInfo.cpp	15 May 2003 18:57:27 -0000	1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/05/15 18:57:27  knoaman
  + * Partial implementation of the configurable memory manager.
  + *
    * Revision 1.4  2002/11/04 14:49:42  tng
    * C++ Namespace Support.
    *
  @@ -88,7 +91,7 @@
   // ---------------------------------------------------------------------------
   //  XercesGroupInfo: Constructors and Destructor
   // ---------------------------------------------------------------------------
  -XercesGroupInfo::XercesGroupInfo()
  +XercesGroupInfo::XercesGroupInfo(MemoryManager* const manager)
       : fCheckElementConsistency(true)
       , fScope(-1)
       , fContentSpec(0)
  @@ -96,7 +99,7 @@
       , fBaseGroup(0)
       , fLocator(0)
   {
  -    fElements = new RefVectorOf<SchemaElementDecl>(4, false);
  +    fElements = new (manager) RefVectorOf<SchemaElementDecl>(4, false);
   }
   
   
  
  
  
  1.5       +3 -3      xml-xerces/c/src/xercesc/validators/schema/XercesGroupInfo.hpp
  
  Index: XercesGroupInfo.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/XercesGroupInfo.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XercesGroupInfo.hpp	4 Nov 2002 14:49:42 -0000	1.4
  +++ XercesGroupInfo.hpp	15 May 2003 18:57:27 -0000	1.5
  @@ -83,13 +83,13 @@
   class XSDLocator;
   
   
  -class VALIDATORS_EXPORT XercesGroupInfo
  +class VALIDATORS_EXPORT XercesGroupInfo : public XMemory
   {
   public:
       // -----------------------------------------------------------------------
       //  Public Constructors/Destructor
       // -----------------------------------------------------------------------
  -    XercesGroupInfo();
  +    XercesGroupInfo(MemoryManager* const manager);
   	~XercesGroupInfo();
   
   	// -----------------------------------------------------------------------
  
  
  

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