peiyongz    2003/07/10 12:58:57

  Modified:    c/src/xercesc/validators/schema TraverseSchema.cpp
                        TraverseSchema.hpp
  Log:
  Stateless Grammar: create grammar components with grammarPool's memory Manager
  
  Revision  Changes    Path
  1.83      +131 -130  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.82
  retrieving revision 1.83
  diff -u -r1.82 -r1.83
  --- TraverseSchema.cpp        26 Jun 2003 16:57:29 -0000      1.82
  +++ TraverseSchema.cpp        10 Jul 2003 19:58:57 -0000      1.83
  @@ -243,6 +243,7 @@
       , fPreprocessedNodes(0)
       , fLocator(0)
       , fMemoryManager(manager)
  +    , fGrammarPoolMemoryManager(fGrammarResolver->getGrammarPoolMemoryManager())
       , fAttributeCheck(manager)
   {
   
  @@ -254,6 +255,7 @@
               preprocessSchema(schemaRoot, schemaURL);
               doTraverseSchema(schemaRoot);
           }
  +
       }
       catch(...) {
   
  @@ -324,7 +326,7 @@
   
       if (fComplexTypeRegistry == 0 ) {
   
  -        fComplexTypeRegistry = new (fMemoryManager) 
RefHashTableOf<ComplexTypeInfo>(29, fMemoryManager);
  +        fComplexTypeRegistry = new (fGrammarPoolMemoryManager) 
RefHashTableOf<ComplexTypeInfo>(29, fGrammarPoolMemoryManager);
           fSchemaGrammar->setComplexTypeRegistry(fComplexTypeRegistry);
       }
   
  @@ -332,7 +334,7 @@
   
       if (fGroupRegistry == 0 ) {
   
  -        fGroupRegistry = new (fMemoryManager) RefHashTableOf<XercesGroupInfo>(13, 
fMemoryManager);
  +        fGroupRegistry = new (fGrammarPoolMemoryManager) 
RefHashTableOf<XercesGroupInfo>(13, fGrammarPoolMemoryManager);
           fSchemaGrammar->setGroupInfoRegistry(fGroupRegistry);
       }
   
  @@ -340,7 +342,7 @@
   
       if (fAttGroupRegistry == 0 ) {
   
  -        fAttGroupRegistry = new (fMemoryManager) 
RefHashTableOf<XercesAttGroupInfo>(13, fMemoryManager);
  +        fAttGroupRegistry = new (fGrammarPoolMemoryManager) 
RefHashTableOf<XercesAttGroupInfo>(13, fGrammarPoolMemoryManager);
           fSchemaGrammar->setAttGroupInfoRegistry(fAttGroupRegistry);
       }
   
  @@ -348,7 +350,7 @@
   
       if (fAttributeDeclRegistry == 0) {
   
  -        fAttributeDeclRegistry = new (fMemoryManager) RefHashTableOf<XMLAttDef>(29, 
fMemoryManager);
  +        fAttributeDeclRegistry = new (fGrammarPoolMemoryManager) 
RefHashTableOf<XMLAttDef>(29, fGrammarPoolMemoryManager);
           fSchemaGrammar->setAttributeDeclRegistry(fAttributeDeclRegistry);
       }
   
  @@ -356,7 +358,7 @@
   
       if (fNamespaceScope == 0) {
   
  -        fNamespaceScope = new (fMemoryManager) NamespaceScope(fMemoryManager);
  +        fNamespaceScope = new (fGrammarPoolMemoryManager) 
NamespaceScope(fGrammarPoolMemoryManager);
           fNamespaceScope->reset(fEmptyNamespaceURI);
           fSchemaGrammar->setNamespaceScope(fNamespaceScope);
       }
  @@ -365,7 +367,7 @@
   
       if (!fValidSubstitutionGroups) {
   
  -        fValidSubstitutionGroups = new (fMemoryManager) 
RefHash2KeysTableOf<ElemVector>(29, fMemoryManager);
  +        fValidSubstitutionGroups = new (fGrammarPoolMemoryManager) 
RefHash2KeysTableOf<ElemVector>(29, fGrammarPoolMemoryManager);
           fSchemaGrammar->setValidSubstitutionGroups(fValidSubstitutionGroups);
       }
   
  @@ -383,11 +385,11 @@
       fAttributeCheck.setIDRefList(fSchemaGrammar->getIDRefList());
   
       // Save current schema info
  -    SchemaInfo* currInfo = new (fMemoryManager) SchemaInfo(0, 0, 0, fTargetNSURI, 
fScopeCount,
  +    SchemaInfo* currInfo = new (fGrammarPoolMemoryManager) SchemaInfo(0, 0, 0, 
fTargetNSURI, fScopeCount,
                                             fNamespaceScope->increaseDepth(),
  -                                          XMLString::replicate(schemaURL, 
fMemoryManager),
  +                                          XMLString::replicate(schemaURL, 
fGrammarPoolMemoryManager),
                                             fTargetNSURIString, schemaRoot,
  -                                          fMemoryManager);
  +                                          fGrammarPoolMemoryManager);
   
       if (fSchemaInfo) {
           fSchemaInfo->addSchemaInfo(currInfo, SchemaInfo::IMPORT);
  @@ -522,7 +524,7 @@
       // Parse input source
       // ------------------------------------------------------------------
       if (!fParser)
  -        fParser = new (fMemoryManager) XSDDOMParser(0, fMemoryManager, 0);
  +        fParser = new (fGrammarPoolMemoryManager) XSDDOMParser(0, 
fGrammarPoolMemoryManager, 0);
   
       fParser->setValidationScheme(XercesDOMParser::Val_Never);
       fParser->setDoNamespaces(true);
  @@ -574,11 +576,11 @@
               // --------------------------------------------------------
               SchemaInfo* saveInfo = fSchemaInfo;
   
  -            fSchemaInfo = new (fMemoryManager) SchemaInfo(0, 0, 0, fTargetNSURI, 
fScopeCount,
  +            fSchemaInfo = new (fGrammarPoolMemoryManager) SchemaInfo(0, 0, 0, 
fTargetNSURI, fScopeCount,
                                            fNamespaceScope->increaseDepth(),
  -                                         XMLString::replicate(includeURL, 
fMemoryManager),
  +                                         XMLString::replicate(includeURL, 
fGrammarPoolMemoryManager),
                                            fTargetNSURIString, root,
  -                                         fMemoryManager);
  +                                         fGrammarPoolMemoryManager);
   
               fSchemaInfoList->put((void*) fSchemaInfo->getCurrentSchemaURL(),
                                    fSchemaInfo->getTargetNSURI(), fSchemaInfo);
  @@ -709,7 +711,7 @@
       // Parse input source
       // ------------------------------------------------------------------
       if (!fParser)
  -        fParser = new (fMemoryManager) XSDDOMParser(0, fMemoryManager, 0);
  +        fParser = new (fGrammarPoolMemoryManager) XSDDOMParser(0, 
fGrammarPoolMemoryManager, 0);
   
       fParser->setValidationScheme(XercesDOMParser::Val_Never);
       fParser->setDoNamespaces(true);
  @@ -752,9 +754,8 @@
               // --------------------------------------------------------
               // Preprocess new schema
               // --------------------------------------------------------
  -            SchemaInfo* saveInfo = fSchemaInfo;
  -            //fSchemaGrammar = 
fGrammarResolver->getGrammarPool()->createSchemaGrammar();
  -            fSchemaGrammar = new (fMemoryManager) SchemaGrammar(fMemoryManager);
  +            SchemaInfo* saveInfo = fSchemaInfo;            
  +            fSchemaGrammar = new (fGrammarPoolMemoryManager) 
SchemaGrammar(fGrammarPoolMemoryManager);
               preprocessSchema(root, importURL);
               fPreprocessedNodes->put((void*) elem, fSchemaInfo);
   
  @@ -901,11 +902,11 @@
                   continue;
               }
   
  -            contentSpecNode = new (fMemoryManager) ContentSpecNode
  +            contentSpecNode = new (fGrammarPoolMemoryManager) ContentSpecNode
               (
                   eltQName
                   , false
  -                , fMemoryManager
  +                , fGrammarPoolMemoryManager
               );
               seeParticle = true;
           }
  @@ -929,7 +930,7 @@
                   continue;
               }
   
  -            contentSpecNode = new (fMemoryManager) 
ContentSpecNode(*contentSpecNode);
  +            contentSpecNode = new (fGrammarPoolMemoryManager) 
ContentSpecNode(*contentSpecNode);
               seeParticle = true;
           }
           else if (XMLString::equals(childName, SchemaSymbols::fgELT_CHOICE)) {
  @@ -966,28 +967,28 @@
               right = contentSpecNode;
           }
           else {
  -            left = new (fMemoryManager) ContentSpecNode
  +            left = new (fGrammarPoolMemoryManager) ContentSpecNode
               (
                   (ContentSpecNode::NodeTypes) modelGroupType
                   , left
                   , right
                   , true
                   , true
  -                , fMemoryManager
  +                , fGrammarPoolMemoryManager
               );
               right = contentSpecNode;
           }
       }
   
       if (hadContent) {
  -        left = new (fMemoryManager) ContentSpecNode
  +        left = new (fGrammarPoolMemoryManager) ContentSpecNode
           (
               (ContentSpecNode::NodeTypes) modelGroupType
               , left
               , right
               , true
               , true
  -            , fMemoryManager
  +            , fGrammarPoolMemoryManager
           );
       }
   
  @@ -1203,7 +1204,7 @@
           // ------------------------------------------------------------------
           // Register the type
           // ------------------------------------------------------------------
  -        typeInfo = new (fMemoryManager) ComplexTypeInfo(fMemoryManager);
  +        typeInfo = new (fGrammarPoolMemoryManager) 
ComplexTypeInfo(fGrammarPoolMemoryManager);
           if(isAnonymous) {
               typeInfo->setAnonymous();
           }
  @@ -1215,7 +1216,7 @@
   
           if (fFullConstraintChecking) {
   
  -            XSDLocator* aLocator = new (fMemoryManager) XSDLocator();
  +            XSDLocator* aLocator = new (fGrammarPoolMemoryManager) XSDLocator();
               
aLocator->setValues(fStringPool->getValueForId(fStringPool->addOrFind(fSchemaInfo->getCurrentSchemaURL())),
                                   0, ((XSDElementNSImpl*) elem)->getLineNo(),
                                   ((XSDElementNSImpl*) elem)->getColumnNo());
  @@ -1406,7 +1407,7 @@
       ContentSpecNode* specNode = 0;
       XercesGroupInfo* saveGroupInfo = fCurrentGroupInfo;
   
  -    groupInfo = new (fMemoryManager) XercesGroupInfo(fMemoryManager);
  +    groupInfo = new (fGrammarPoolMemoryManager) 
XercesGroupInfo(fGrammarPoolMemoryManager);
       fCurrentGroupStack->addElement(nameIndex);
       fCurrentGroupInfo = groupInfo;
   
  @@ -1463,7 +1464,7 @@
   
       if (fFullConstraintChecking) {
   
  -        XSDLocator* aLocator = new (fMemoryManager) XSDLocator();
  +        XSDLocator* aLocator = new (fGrammarPoolMemoryManager) XSDLocator();
   
           groupInfo->setLocator(aLocator);
           
aLocator->setValues(fStringPool->getValueForId(fStringPool->addOrFind(fSchemaInfo->getCurrentSchemaURL())),
  @@ -1552,7 +1553,7 @@
       // Process contents of global attributeGroups
       // ------------------------------------------------------------------
       XercesAttGroupInfo* saveAttGroupInfo = fCurrentAttGroupInfo;
  -    XercesAttGroupInfo* attGroupInfo = new (fMemoryManager) 
XercesAttGroupInfo(fMemoryManager);
  +    XercesAttGroupInfo* attGroupInfo = new (fGrammarPoolMemoryManager) 
XercesAttGroupInfo(fGrammarPoolMemoryManager);
   
       fDeclStack->addElement(elem);
       fCurrentAttGroupInfo = attGroupInfo;
  @@ -1713,38 +1714,38 @@
   
       if ((!nameSpace || !*nameSpace)
           || XMLString::equals(nameSpace, SchemaSymbols::fgATTVAL_TWOPOUNDANY)) {
  -        retSpecNode = new (fMemoryManager) ContentSpecNode
  +        retSpecNode = new (fGrammarPoolMemoryManager) ContentSpecNode
           (
  -            new (fMemoryManager) QName
  +            new (fGrammarPoolMemoryManager) QName
               (
                   XMLUni::fgZeroLenString
                   , XMLUni::fgZeroLenString
                   , fEmptyNamespaceURI
  -                , fMemoryManager
  +                , fGrammarPoolMemoryManager
               )
               , false
  -            , fMemoryManager
  +            , fGrammarPoolMemoryManager
           );
           retSpecNode->setType(anyType);
       }
       else if (XMLString::equals(nameSpace, SchemaSymbols::fgATTVAL_TWOPOUNDOTHER)) {
  -        retSpecNode = new (fMemoryManager) ContentSpecNode
  +        retSpecNode = new (fGrammarPoolMemoryManager) ContentSpecNode
           (
  -            new (fMemoryManager) QName
  +            new (fGrammarPoolMemoryManager) QName
               (
                   XMLUni::fgZeroLenString
                   , XMLUni::fgZeroLenString
  -                , fTargetNSURI, fMemoryManager
  +                , fTargetNSURI, fGrammarPoolMemoryManager
               )
               , false
  -            , fMemoryManager
  +            , fGrammarPoolMemoryManager
           );
           retSpecNode->setType(anyOtherType);
       }
       else {
   
           BaseRefVectorOf<XMLCh>* nameSpaceTokens = 
XMLString::tokenizeString(nameSpace);
  -        ValueVectorOf<unsigned int> uriList(8, fMemoryManager);
  +        ValueVectorOf<unsigned int> uriList(8, fGrammarPoolMemoryManager);
           ContentSpecNode* firstNode = 0;
           ContentSpecNode* secondNode = 0;
           unsigned int tokensSize = nameSpaceTokens->size();
  @@ -1777,16 +1778,16 @@
   
               uriList.addElement(uriIndex);
   
  -            firstNode = new (fMemoryManager) ContentSpecNode
  +            firstNode = new (fGrammarPoolMemoryManager) ContentSpecNode
               (
  -                new (fMemoryManager) QName
  +                new (fGrammarPoolMemoryManager) QName
                   (
                       XMLUni::fgZeroLenString
                       , XMLUni::fgZeroLenString
  -                    , uriIndex, fMemoryManager
  +                    , uriIndex, fGrammarPoolMemoryManager
                   )
                   , false
  -                , fMemoryManager
  +                , fGrammarPoolMemoryManager
               );
               firstNode->setType(anyLocalType);
   
  @@ -1794,14 +1795,14 @@
                   secondNode = firstNode;
               }
               else {
  -                secondNode = new (fMemoryManager) ContentSpecNode
  +                secondNode = new (fGrammarPoolMemoryManager) ContentSpecNode
                   (
                       ContentSpecNode::Choice
                       , secondNode
                       , firstNode
                       , true
                       , true
  -                    , fMemoryManager
  +                    , fGrammarPoolMemoryManager
                   );
               }
           }
  @@ -1859,11 +1860,11 @@
                   continue;
               }
   
  -            contentSpecNode = new (fMemoryManager) ContentSpecNode
  +            contentSpecNode = new (fGrammarPoolMemoryManager) ContentSpecNode
               (
                   eltQName
                   , false
  -                , fMemoryManager
  +                , fGrammarPoolMemoryManager
               );
               checkMinMax(contentSpecNode, child, All_Element);
           }
  @@ -1882,28 +1883,28 @@
               right = contentSpecNode;
           }
           else {
  -            left = new (fMemoryManager) ContentSpecNode
  +            left = new (fGrammarPoolMemoryManager) ContentSpecNode
               (
                   ContentSpecNode::All
                   , left
                   , right
                   , true
                   , true
  -                , fMemoryManager
  +                , fGrammarPoolMemoryManager
               );
               right = contentSpecNode;
           }
       }
   
       if (hadContent) {
  -        left = new (fMemoryManager) ContentSpecNode
  +        left = new (fGrammarPoolMemoryManager) ContentSpecNode
           (
               ContentSpecNode::All
               , left
               , right
               , true
               , true
  -            , fMemoryManager
  +            , fGrammarPoolMemoryManager
           );
       }
   
  @@ -2207,14 +2208,14 @@
       }
   
       // create SchemaAttDef
  -    SchemaAttDef* attDef = new (fMemoryManager) SchemaAttDef
  +    SchemaAttDef* attDef = new (fGrammarPoolMemoryManager) SchemaAttDef
       (
           XMLUni::fgZeroLenString
           , name
           , uriIndex
           , attType
           , XMLAttDef::Implied
  -        , fMemoryManager
  +        , fGrammarPoolMemoryManager
       );
   
       attDef->setDatatypeValidator(dv);
  @@ -2310,7 +2311,7 @@
       if (topLevel) {
   
           if (fSchemaGrammar->getElemDecl(fTargetNSURI, name, 0, 
Grammar::TOP_LEVEL_SCOPE) != 0) {
  -            return new (fMemoryManager) QName(name, fTargetNSURI, fMemoryManager);
  +            return new (fGrammarPoolMemoryManager) QName(name, fTargetNSURI, 
fGrammarPoolMemoryManager);
           }
       }
   
  @@ -2552,20 +2553,20 @@
                                       subsElements = 
aGrammar->getValidSubstitutionGroups()->get(subsElemBaseName, subsElemURI);
   
                                       if (subsElements) {
  -                                        subsElements = new (fMemoryManager) 
ValueVectorOf<SchemaElementDecl*>(*subsElements);
  +                                        subsElements = new 
(fGrammarPoolMemoryManager) ValueVectorOf<SchemaElementDecl*>(*subsElements);
                                           
fValidSubstitutionGroups->put(subsElemBaseName, subsElemURI, subsElements);
                                       }
                                       else if 
(fSchemaInfo->circularImportExist(subsElemURI)) {
   
                                           aGrammar->getValidSubstitutionGroups()->put(
  -                                        subsElemBaseName, subsElemURI, new 
(fMemoryManager) ValueVectorOf<SchemaElementDecl*>(8, fMemoryManager));
  +                                        subsElemBaseName, subsElemURI, new 
(fGrammarPoolMemoryManager) ValueVectorOf<SchemaElementDecl*>(8, 
fGrammarPoolMemoryManager));
                                       }
                                   }
                               }
   
                               if (!subsElements) {
   
  -                                subsElements = new (fMemoryManager) 
ValueVectorOf<SchemaElementDecl*>(8, fMemoryManager);
  +                                subsElements = new (fGrammarPoolMemoryManager) 
ValueVectorOf<SchemaElementDecl*>(8, fGrammarPoolMemoryManager);
                                   fValidSubstitutionGroups->put(subsElemBaseName, 
subsElemURI, subsElements);
                               }
   
  @@ -2688,11 +2689,11 @@
           elemDecl->setContentSpec(contentSpecNode);
   
           if (isAnyType) {
  -            elemDecl->setAttWildCard(new (fMemoryManager) 
SchemaAttDef(XMLUni::fgZeroLenString,
  +            elemDecl->setAttWildCard(new (fGrammarPoolMemoryManager) 
SchemaAttDef(XMLUni::fgZeroLenString,
                                                         XMLUni::fgZeroLenString,
                                                         fEmptyNamespaceURI, 
XMLAttDef::Any_Any,
                                                         
XMLAttDef::ProcessContents_Lax,
  -                                                      fMemoryManager));
  +                                                      fGrammarPoolMemoryManager));
           }
   
           // key/keyref/unique processing
  @@ -2711,7 +2712,7 @@
               else {
   
                   if (!icNodes) {
  -                    icNodes = new (fMemoryManager) ValueVectorOf<DOMElement*>(8, 
fMemoryManager);
  +                    icNodes = new (fGrammarPoolMemoryManager) 
ValueVectorOf<DOMElement*>(8, fGrammarPoolMemoryManager);
                   }
   
                   icNodes->addElement(ic);
  @@ -2750,7 +2751,7 @@
           }
       }
   
  -    return new (fMemoryManager) QName(*elemDecl->getElementName());
  +    return new (fGrammarPoolMemoryManager) QName(*elemDecl->getElementName());
   }
   
   const XMLCh* TraverseSchema::traverseNotationDecl(const DOMElement* const elem) {
  @@ -2984,7 +2985,7 @@
           // Get facets if any existing
           RefHashTableOf<KVStringPair>* facets = 0;
           RefArrayVectorOf<XMLCh>*      enums = 0;
  -        XMLBuffer                     pattern(128, fMemoryManager);
  +        XMLBuffer                     pattern(128, fGrammarPoolMemoryManager);
           XMLCh                         fixedFlagStr[16];
           unsigned int                  fixedFlag = 0;
           unsigned short                scope = 0;
  @@ -3010,7 +3011,7 @@
                   fAttributeCheck.checkAttributes(content, scope, this);
   
                   if (facets == 0) {
  -                    facets = new (fMemoryManager) RefHashTableOf<KVStringPair>(29, 
true, fMemoryManager);
  +                    facets = new (fGrammarPoolMemoryManager) 
RefHashTableOf<KVStringPair>(29, true, fGrammarPoolMemoryManager);
                   }
   
                   if (XMLString::equals(facetName, SchemaSymbols::fgELT_ENUMERATION)) 
{
  @@ -3020,7 +3021,7 @@
                       // to get the qualified name first before adding it to the
                       // enum buffer
                       if (!enums) {
  -                        enums = new (fMemoryManager) RefArrayVectorOf<XMLCh>(8, 
true, fMemoryManager);
  +                        enums = new (fGrammarPoolMemoryManager) 
RefArrayVectorOf<XMLCh>(8, true, fGrammarPoolMemoryManager);
                       }
   
                       if (baseValidator->getType() == DatatypeValidator::NOTATION) {
  @@ -3037,10 +3038,10 @@
                           fBuffer.set(uriStr);
                           fBuffer.append(chColon);
                           fBuffer.append(localPart);
  -                        
enums->addElement(XMLString::replicate(fBuffer.getRawBuffer(), fMemoryManager));
  +                        
enums->addElement(XMLString::replicate(fBuffer.getRawBuffer(), 
fGrammarPoolMemoryManager));
                       }
                       else {
  -                        enums->addElement(XMLString::replicate(attValue, 
fMemoryManager));
  +                        enums->addElement(XMLString::replicate(attValue, 
fGrammarPoolMemoryManager));
                       }
                   }
                   else if (XMLString::equals(facetName, 
SchemaSymbols::fgELT_PATTERN)) {
  @@ -3071,7 +3072,7 @@
                           else {
   
                               const XMLCh* facetStr = 
fStringPool->getValueForId(fStringPool->addOrFind(facetName));
  -                            facets->put((void*) facetStr, new (fMemoryManager) 
KVStringPair(facetStr, attValue, fMemoryManager));
  +                            facets->put((void*) facetStr, new 
(fGrammarPoolMemoryManager) KVStringPair(facetStr, attValue, 
fGrammarPoolMemoryManager));
                               checkFixedFacet(content, facetStr, baseValidator, 
fixedFlag);
                           }
                       }
  @@ -3088,14 +3089,14 @@
   
           if (!pattern.isEmpty()) {
               facets->put((void*) SchemaSymbols::fgELT_PATTERN,
  -                        new (fMemoryManager) 
KVStringPair(SchemaSymbols::fgELT_PATTERN, pattern.getRawBuffer(), fMemoryManager));
  +                        new (fGrammarPoolMemoryManager) 
KVStringPair(SchemaSymbols::fgELT_PATTERN, pattern.getRawBuffer(), 
fGrammarPoolMemoryManager));
           }
   
           if (fixedFlag) {
   
               XMLString::binToText(fixedFlag, fixedFlagStr, 15, 10);
               facets->put((void*) SchemaSymbols::fgATT_FIXED,
  -                        new (fMemoryManager) 
KVStringPair(SchemaSymbols::fgATT_FIXED, fixedFlagStr, fMemoryManager));
  +                        new (fGrammarPoolMemoryManager) 
KVStringPair(SchemaSymbols::fgATT_FIXED, fixedFlagStr, fGrammarPoolMemoryManager));
           }
   
           try {
  @@ -3132,13 +3133,13 @@
       int                             size = 1;
       const XMLCh*                    baseTypeName = getElementAttValue(contentElem, 
SchemaSymbols::fgATT_MEMBERTYPES);
       DatatypeValidator*              baseValidator = 0;
  -    RefVectorOf<DatatypeValidator>* validators = new (fMemoryManager) 
RefVectorOf<DatatypeValidator>(4, false, fMemoryManager);
  +    RefVectorOf<DatatypeValidator>* validators = new (fGrammarPoolMemoryManager) 
RefVectorOf<DatatypeValidator>(4, false, fGrammarPoolMemoryManager);
       Janitor<DVRefVector>            janValidators(validators);
       DOMElement*                     content = 0;
   
       if (baseTypeName && *baseTypeName) { //base was provided - get proper validator.
   
  -        XMLStringTokenizer unionMembers(baseTypeName, fMemoryManager);
  +        XMLStringTokenizer unionMembers(baseTypeName, fGrammarPoolMemoryManager);
           int             tokCount = unionMembers.countTokens();
   
           for (int i = 0; i < tokCount; i++) {
  @@ -3424,7 +3425,7 @@
               // ---------------------------------------------------------------
               RefHashTableOf<KVStringPair>*  facets = 0;
               RefArrayVectorOf<XMLCh>*       enums = 0;
  -            XMLBuffer                      pattern(128, fMemoryManager);
  +            XMLBuffer                      pattern(128, fGrammarPoolMemoryManager);
               XMLCh                          fixedFlagStr[16];
               unsigned int                   fixedFlag = 0;
               unsigned short                 scope = 0;
  @@ -3449,16 +3450,16 @@
                       const XMLCh* attValue = 
content->getAttribute(SchemaSymbols::fgATT_VALUE);
   
                       if (facets == 0) {
  -                        facets = new (fMemoryManager) 
RefHashTableOf<KVStringPair>(29, true, fMemoryManager);
  +                        facets = new (fGrammarPoolMemoryManager) 
RefHashTableOf<KVStringPair>(29, true, fGrammarPoolMemoryManager);
                       }
   
                       if (XMLString::equals(facetName, 
SchemaSymbols::fgELT_ENUMERATION)) {
   
                           if (!enums) {
  -                            enums = new (fMemoryManager) RefArrayVectorOf<XMLCh>(8, 
true, fMemoryManager);
  +                            enums = new (fGrammarPoolMemoryManager) 
RefArrayVectorOf<XMLCh>(8, true, fGrammarPoolMemoryManager);
                           }
   
  -                        enums->addElement(XMLString::replicate(attValue, 
fMemoryManager));
  +                        enums->addElement(XMLString::replicate(attValue, 
fGrammarPoolMemoryManager));
                       }
                       else if (XMLString::equals(facetName, 
SchemaSymbols::fgELT_PATTERN)) {
   
  @@ -3483,7 +3484,7 @@
                               const XMLCh* facetNameStr =
                                   
fStringPool->getValueForId(fStringPool->addOrFind(facetName));
   
  -                            facets->put((void*) facetNameStr, new (fMemoryManager) 
KVStringPair(facetNameStr, attValue, fMemoryManager));
  +                            facets->put((void*) facetNameStr, new 
(fGrammarPoolMemoryManager) KVStringPair(facetNameStr, attValue, 
fGrammarPoolMemoryManager));
                               checkFixedFacet(content, facetNameStr, 
typeInfo->getBaseDatatypeValidator(), fixedFlag);
                           }
                       }
  @@ -3498,7 +3499,7 @@
                       facets->put
                       (
                           (void*) SchemaSymbols::fgELT_PATTERN,
  -                        new (fMemoryManager) KVStringPair
  +                        new (fGrammarPoolMemoryManager) KVStringPair
                               (
                                   SchemaSymbols::fgELT_PATTERN,
                                   pattern.getRawBuffer()
  @@ -3510,7 +3511,7 @@
   
                       XMLString::binToText(fixedFlag, fixedFlagStr, 15, 10);
                       facets->put((void*) SchemaSymbols::fgATT_FIXED,
  -                        new (fMemoryManager) 
KVStringPair(SchemaSymbols::fgATT_FIXED, fixedFlagStr, fMemoryManager));
  +                        new (fGrammarPoolMemoryManager) 
KVStringPair(SchemaSymbols::fgATT_FIXED, fixedFlagStr, fGrammarPoolMemoryManager));
                   }
   
                   try {
  @@ -3763,7 +3764,7 @@
       // ------------------------------------------------------------------
       int uriIndex = fEmptyNamespaceURI;
       XMLAttDef::AttTypes attType = XMLAttDef::Any_Any;
  -    ValueVectorOf<unsigned int> namespaceList(8, fMemoryManager);
  +    ValueVectorOf<unsigned int> namespaceList(8, fGrammarPoolMemoryManager);
   
       if ((!nameSpace || !*nameSpace)
           || XMLString::equals(nameSpace, SchemaSymbols::fgATTVAL_TWOPOUNDANY)) {
  @@ -3776,7 +3777,7 @@
       }
       else {
   
  -        XMLStringTokenizer tokenizer(nameSpace, fMemoryManager);
  +        XMLStringTokenizer tokenizer(nameSpace, fGrammarPoolMemoryManager);
           DatatypeValidator* anyURIDV = 
fDatatypeRegistry->getDatatypeValidator(SchemaSymbols::fgDT_ANYURI);
   
           attType = XMLAttDef::Any_List;
  @@ -3813,10 +3814,10 @@
       // ------------------------------------------------------------------
       // Create wildcard attribute
       // ------------------------------------------------------------------
  -    SchemaAttDef* attDef = new (fMemoryManager) 
SchemaAttDef(XMLUni::fgZeroLenString,
  +    SchemaAttDef* attDef = new (fGrammarPoolMemoryManager) 
SchemaAttDef(XMLUni::fgZeroLenString,
                                               XMLUni::fgZeroLenString,
                                               uriIndex, attType, attDefType,
  -                                            fMemoryManager);
  +                                            fGrammarPoolMemoryManager);
   
   
       if (namespaceList.size()) {
  @@ -3867,7 +3868,7 @@
           return;
       }
   
  -    IC_Key* icKey = new (fMemoryManager) IC_Key(name, elemDecl->getBaseName(), 
fMemoryManager);
  +    IC_Key* icKey = new (fGrammarPoolMemoryManager) IC_Key(name, 
elemDecl->getBaseName(), fGrammarPoolMemoryManager);
       Janitor<IC_Key> janKey(icKey);
   
       fIdentityConstraintNames->put((void*) name, fTargetNSURI, icKey);
  @@ -3919,7 +3920,7 @@
       }
   
       if (!fIdentityConstraintNames) {
  -        fIdentityConstraintNames = new (fMemoryManager) 
RefHash2KeysTableOf<IdentityConstraint>(29, (bool) false, fMemoryManager);
  +        fIdentityConstraintNames = new (fGrammarPoolMemoryManager) 
RefHash2KeysTableOf<IdentityConstraint>(29, (bool) false, fGrammarPoolMemoryManager);
       }
   
       if (fIdentityConstraintNames->containsKey(name, fTargetNSURI)) {
  @@ -3928,7 +3929,7 @@
           return;
       }
   
  -    IC_Unique* icUnique = new (fMemoryManager) IC_Unique(name, 
elemDecl->getBaseName(), fMemoryManager);
  +    IC_Unique* icUnique = new (fGrammarPoolMemoryManager) IC_Unique(name, 
elemDecl->getBaseName(), fGrammarPoolMemoryManager);
       Janitor<IC_Unique> janUnique(icUnique);
   
       fIdentityConstraintNames->put((void*) name, fTargetNSURI, icUnique);
  @@ -4002,7 +4003,7 @@
           return;
       }
   
  -    IC_KeyRef* icKeyRef = new (fMemoryManager) IC_KeyRef(name, 
elemDecl->getBaseName(), icKey, fMemoryManager);
  +    IC_KeyRef* icKeyRef = new (fGrammarPoolMemoryManager) IC_KeyRef(name, 
elemDecl->getBaseName(), icKey, fGrammarPoolMemoryManager);
       Janitor<IC_KeyRef> janKeyRef(icKeyRef);
   
       fIdentityConstraintNames->put((void*) name, fTargetNSURI, icKeyRef);
  @@ -4099,8 +4100,8 @@
       // ------------------------------------------------------------------
       try {
   
  -        XercesXPath* sXPath = new (fMemoryManager) 
XercesXPath(fBuffer.getRawBuffer(), fStringPool, fNamespaceScope, fEmptyNamespaceURI, 
true, fMemoryManager);
  -        IC_Selector* icSelector = new (fMemoryManager) IC_Selector(sXPath, ic);
  +        XercesXPath* sXPath = new (fGrammarPoolMemoryManager) 
XercesXPath(fBuffer.getRawBuffer(), fStringPool, fNamespaceScope, fEmptyNamespaceURI, 
true, fGrammarPoolMemoryManager);
  +        IC_Selector* icSelector = new (fGrammarPoolMemoryManager) 
IC_Selector(sXPath, ic);
           ic->setSelector(icSelector);
       }
       catch (const XPathException& e) {
  @@ -4151,16 +4152,16 @@
   
               try {
   
  -                XercesXPath* fieldXPath = new (fMemoryManager) XercesXPath
  +                XercesXPath* fieldXPath = new (fGrammarPoolMemoryManager) 
XercesXPath
                   (
                       fBuffer.getRawBuffer()
                       , fStringPool
                       , fNamespaceScope
                       , fEmptyNamespaceURI
                       , false
  -                    , fMemoryManager
  +                    , fGrammarPoolMemoryManager
                   );
  -                IC_Field* icField = new (fMemoryManager) IC_Field(fieldXPath, ic);
  +                IC_Field* icField = new (fGrammarPoolMemoryManager) 
IC_Field(fieldXPath, ic);
                   ic->addField(icField);
               }
               catch (const XPathException& e) {
  @@ -4614,9 +4615,9 @@
       const XMLCh* prefix = getPrefix(refName);
       const XMLCh* localPart = getLocalPart(refName);
       const XMLCh* uriStr = resolvePrefixToURI(elem, prefix);
  -    QName*       eltName = new (fMemoryManager) QName(prefix , localPart, uriStr != 0
  +    QName*       eltName = new (fGrammarPoolMemoryManager) QName(prefix , 
localPart, uriStr != 0
                                          ? fURIStringPool->addOrFind(uriStr)
  -                                       : fEmptyNamespaceURI, fMemoryManager);
  +                                       : fEmptyNamespaceURI, 
fGrammarPoolMemoryManager);
   
       //if from another schema, just return the element QName
       if (!XMLString::equals(uriStr, fTargetNSURIString)) {
  @@ -4682,7 +4683,7 @@
           return blockSet;
       }
   
  -    XMLStringTokenizer tokenizer(blockVal, fMemoryManager);
  +    XMLStringTokenizer tokenizer(blockVal, fGrammarPoolMemoryManager);
   
       while (tokenizer.hasMoreTokens()) {
   
  @@ -4743,7 +4744,7 @@
           return finalSet;
       }
   
  -    XMLStringTokenizer tokenizer(finalVal, fMemoryManager);
  +    XMLStringTokenizer tokenizer(finalVal, fGrammarPoolMemoryManager);
   
       while (tokenizer.hasMoreTokens()) {
   
  @@ -5318,14 +5319,14 @@
       }
   
       const XMLCh* prefix = getPrefix(name);
  -    SchemaElementDecl* elemDecl = new (fMemoryManager) SchemaElementDecl
  +    SchemaElementDecl* elemDecl = new (fGrammarPoolMemoryManager) SchemaElementDecl
       (
           prefix
           , name
           , uriIndex
           , (SchemaElementDecl::ModelTypes) elemType
           , enclosingScope
  -        , fMemoryManager
  +        , fGrammarPoolMemoryManager
       );
   
       elemDecl->setFinalSet(finalSet);
  @@ -5480,13 +5481,13 @@
       bool required = XMLString::equals(useAttr,SchemaSymbols::fgATTVAL_REQUIRED);
       bool prohibited = XMLString::equals(useAttr,SchemaSymbols::fgATTVAL_PROHIBITED);
       QName* attQName = refAttDef->getAttName();
  -    SchemaAttDef* attDef = new (fMemoryManager) SchemaAttDef(attQName->getPrefix(),
  +    SchemaAttDef* attDef = new (fGrammarPoolMemoryManager) 
SchemaAttDef(attQName->getPrefix(),
                                               attQName->getLocalPart(),
                                               attQName->getURI(),
                                               refAttValue,
                                               refAttDef->getType(),
                                               refAttDefType,
  -                                            0, fMemoryManager);
  +                                            0, fGrammarPoolMemoryManager);
   
       if (refAttDefType == XMLAttDef::Fixed) {
           if (required && !invalidAttUse) {
  @@ -5727,7 +5728,7 @@
   
                       int contentContext = specNode->hasAllContent() ? 
Group_Ref_With_All : Not_All_Context;
   
  -                    specNode = new (fMemoryManager) ContentSpecNode(*specNode);
  +                    specNode = new (fGrammarPoolMemoryManager) 
ContentSpecNode(*specNode);
                       checkMinMax(specNode, childElem, contentContext);
                   }
               }
  @@ -5794,7 +5795,7 @@
               if (!specNode) {
   
                   if (baseSpecNode) {
  -                    specNode = new (fMemoryManager) ContentSpecNode(*baseSpecNode);
  +                    specNode = new (fGrammarPoolMemoryManager) 
ContentSpecNode(*baseSpecNode);
                       typeInfo->setContentSpec(specNode);
                       typeInfo->setAdoptContentSpec(true);
                   }
  @@ -5818,14 +5819,14 @@
                   typeInfo->setAdoptContentSpec(false);
                   typeInfo->setContentSpec
                   (
  -                    new (fMemoryManager) ContentSpecNode
  +                    new (fGrammarPoolMemoryManager) ContentSpecNode
                       (
                           ContentSpecNode::Sequence
  -                        , new (fMemoryManager) ContentSpecNode(*baseSpecNode)
  +                        , new (fGrammarPoolMemoryManager) 
ContentSpecNode(*baseSpecNode)
                           , specNode
                           , true
                           , true
  -                        , fMemoryManager
  +                        , fGrammarPoolMemoryManager
                       )
                   );
                   typeInfo->setAdoptContentSpec(true);
  @@ -5841,16 +5842,16 @@
       // -------------------------------------------------------------
       if (isBaseAnyType && typeDerivedBy == SchemaSymbols::XSD_EXTENSION) {
   
  -        ContentSpecNode* anySpecNode = new (fMemoryManager) ContentSpecNode
  +        ContentSpecNode* anySpecNode = new (fGrammarPoolMemoryManager) 
ContentSpecNode
           (
  -            new (fMemoryManager) QName
  +            new (fGrammarPoolMemoryManager) QName
               (
                   XMLUni::fgZeroLenString
                   , XMLUni::fgZeroLenString
  -                , fEmptyNamespaceURI, fMemoryManager
  +                , fEmptyNamespaceURI, fGrammarPoolMemoryManager
               )
               , false
  -            , fMemoryManager
  +            , fGrammarPoolMemoryManager
           );
   
           anySpecNode->setType(ContentSpecNode::Any_Lax);
  @@ -5866,14 +5867,14 @@
               typeInfo->setAdoptContentSpec(false);
               typeInfo->setContentSpec
               (
  -                new (fMemoryManager) ContentSpecNode
  +                new (fGrammarPoolMemoryManager) ContentSpecNode
                   (
                       ContentSpecNode::Sequence
                       , anySpecNode
                       , specNode
                       , true
                       , true
  -                    , fMemoryManager
  +                    , fGrammarPoolMemoryManager
                   )
               );
               typeInfo->setAdoptContentSpec(true);
  @@ -5894,17 +5895,17 @@
           }
           else {
               // add #PCDATA leaf and set its minOccurs to 0
  -            ContentSpecNode* pcdataNode = new (fMemoryManager) ContentSpecNode
  +            ContentSpecNode* pcdataNode = new (fGrammarPoolMemoryManager) 
ContentSpecNode
               (
  -                new (fMemoryManager) QName
  +                new (fGrammarPoolMemoryManager) QName
                   (
                       XMLUni::fgZeroLenString
                       , XMLUni::fgZeroLenString
                       , XMLElementDecl::fgPCDataElemId
  -                    , fMemoryManager
  +                    , fGrammarPoolMemoryManager
                   )
                   , false
  -                , fMemoryManager
  +                , fGrammarPoolMemoryManager
               );
   
               pcdataNode->setMinOccurs(0);
  @@ -6128,7 +6129,7 @@
       SchemaAttDef* attWildCard = 0;
       Janitor<SchemaAttDef> janAttWildCard(0);
       XercesAttGroupInfo* attGroupInfo = 0;
  -    ValueVectorOf<XercesAttGroupInfo*> attGroupList(4, fMemoryManager);
  +    ValueVectorOf<XercesAttGroupInfo*> attGroupList(4, fGrammarPoolMemoryManager);
   
       for (; child != 0; child = XUtil::getNextSiblingElement(child)) {
   
  @@ -6184,7 +6185,7 @@
   
                   if (!attGroupWildCard) {
   
  -                    attGroupWildCard = new (fMemoryManager) 
SchemaAttDef(attGroupInfo->anyAttributeAt(0));
  +                    attGroupWildCard = new (fGrammarPoolMemoryManager) 
SchemaAttDef(attGroupInfo->anyAttributeAt(0));
   
                       for (unsigned int i= 1; i < anyAttCount; i++) {
                           attWildCardIntersection(attGroupWildCard, 
attGroupInfo->anyAttributeAt(i));
  @@ -6197,7 +6198,7 @@
                       attWildCardIntersection(completeWildCard, attGroupWildCard);
                   }
                   else {
  -                    completeWildCard = new (fMemoryManager) 
SchemaAttDef(attGroupWildCard);
  +                    completeWildCard = new (fGrammarPoolMemoryManager) 
SchemaAttDef(attGroupWildCard);
                       janCompleteWildCard.reset(completeWildCard);
                   }
               }
  @@ -6227,11 +6228,11 @@
   
           if (isBaseAnyType) {
   
  -            baseAttWildCard = new (fMemoryManager) 
SchemaAttDef(XMLUni::fgZeroLenString,
  +            baseAttWildCard = new (fGrammarPoolMemoryManager) 
SchemaAttDef(XMLUni::fgZeroLenString,
                                                  XMLUni::fgZeroLenString,
                                                  fEmptyNamespaceURI, 
XMLAttDef::Any_Any,
                                                  XMLAttDef::ProcessContents_Lax,
  -                                               fMemoryManager);
  +                                               fGrammarPoolMemoryManager);
               janBaseAttWildCard.reset(baseAttWildCard);
           }
                
  @@ -6264,7 +6265,7 @@
           }
           else {
   
  -            SchemaAttDef* newWildCard = new (fMemoryManager) 
SchemaAttDef(baseAttWildCard);
  +            SchemaAttDef* newWildCard = new (fGrammarPoolMemoryManager) 
SchemaAttDef(baseAttWildCard);
               typeInfo->setAttWildCard(newWildCard);
           }
       }
  @@ -6311,14 +6312,14 @@
   
               if (attDef.getDefaultType() != XMLAttDef::Prohibited) {
   
  -                SchemaAttDef* newAttDef = new (fMemoryManager) 
SchemaAttDef(attName->getPrefix(),
  +                SchemaAttDef* newAttDef = new (fGrammarPoolMemoryManager) 
SchemaAttDef(attName->getPrefix(),
                                                              attName->getLocalPart(),
                                                              attName->getURI(),
                                                              attDef.getValue(),
                                                              attDef.getType(),
                                                              attDef.getDefaultType(),
                                                              attDef.getEnumeration(),
  -                                                           fMemoryManager);
  +                                                           
fGrammarPoolMemoryManager);
   
                   newAttDef->setDatatypeValidator(attDef.getDatatypeValidator());
                   typeInfo->addAttDef(newAttDef);
  @@ -6508,7 +6509,7 @@
                   break;
               }
                        
  -            validSubsElements = new (fMemoryManager) 
ValueVectorOf<SchemaElementDecl*>(*validSubsElements);
  +            validSubsElements = new (fGrammarPoolMemoryManager) 
ValueVectorOf<SchemaElementDecl*>(*validSubsElements);
               fValidSubstitutionGroups->put((void*) chainElemName, chainElemURI, 
validSubsElements);
           }
   
  @@ -6575,7 +6576,7 @@
                   return;
               }
                        
  -            validSubs = new (fMemoryManager) 
ValueVectorOf<SchemaElementDecl*>(*validSubs);
  +            validSubs = new (fGrammarPoolMemoryManager) 
ValueVectorOf<SchemaElementDecl*>(*validSubs);
               fValidSubstitutionGroups->put((void*) subsElemName, subsElemURI, 
validSubs);
           }
   
  @@ -6953,7 +6954,7 @@
                   typeInfo->setAttWithTypeId(true);
               }
   
  -            typeInfo->addAttDef(new (fMemoryManager) SchemaAttDef(attDef));
  +            typeInfo->addAttDef(new (fGrammarPoolMemoryManager) 
SchemaAttDef(attDef));
   
               if (toAttGroup) {
                   toAttGroup->addAttDef(attDef, true);
  @@ -7035,7 +7036,7 @@
           if (listSize) {
   
               bool                        found = false;
  -            ValueVectorOf<unsigned int> tmpURIList(listSize, fMemoryManager);
  +            ValueVectorOf<unsigned int> tmpURIList(listSize, 
fGrammarPoolMemoryManager);
   
               for (unsigned int i=0; i < listSize; i++) {
   
  @@ -7072,7 +7073,7 @@
   
           if (listSize) {
   
  -            ValueVectorOf<unsigned int> tmpURIList(listSize, fMemoryManager);
  +            ValueVectorOf<unsigned int> tmpURIList(listSize, 
fGrammarPoolMemoryManager);
   
               for (unsigned int i=0; i < listSize; i++) {
   
  @@ -7567,7 +7568,7 @@
       // Parse input source
       // ------------------------------------------------------------------
       if (!fParser)
  -        fParser = new (fMemoryManager) XSDDOMParser(0,fMemoryManager, 0);
  +        fParser = new (fGrammarPoolMemoryManager) 
XSDDOMParser(0,fGrammarPoolMemoryManager, 0);
   
       fParser->setValidationScheme(XercesDOMParser::Val_Never);
       fParser->setDoNamespaces(true);
  @@ -7623,11 +7624,11 @@
           // Update schema information with redefined schema
           // --------------------------------------------------------
           redefSchemaInfo = fSchemaInfo;
  -        fSchemaInfo = new (fMemoryManager) SchemaInfo(0, 0, 0, fTargetNSURI, 
fScopeCount,
  +        fSchemaInfo = new (fGrammarPoolMemoryManager) SchemaInfo(0, 0, 0, 
fTargetNSURI, fScopeCount,
                                        fNamespaceScope->increaseDepth(),
  -                                     XMLString::replicate(includeURL, 
fMemoryManager),
  +                                     XMLString::replicate(includeURL, 
fGrammarPoolMemoryManager),
                                        fTargetNSURIString, root,
  -                                     fMemoryManager);
  +                                     fGrammarPoolMemoryManager);
   
           traverseSchemaHeader(root);
           fSchemaInfoList->put((void*) fSchemaInfo->getCurrentSchemaURL(), 
fSchemaInfo->getTargetNSURI(), fSchemaInfo);
  
  
  
  1.26      +2 -1      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.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- TraverseSchema.hpp        16 May 2003 21:43:21 -0000      1.25
  +++ TraverseSchema.hpp        10 Jul 2003 19:58:57 -0000      1.26
  @@ -778,6 +778,7 @@
       XSDErrorReporter                               fXSDErrorReporter;
       XSDLocator*                                    fLocator;
       MemoryManager*                                 fMemoryManager;
  +    MemoryManager*                                 fGrammarPoolMemoryManager;
       GeneralAttributeCheck                          fAttributeCheck;
   
       friend class GeneralAttributeCheck;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to