cargilld 2004/02/05 10:09:53 Modified: c/src/xercesc/framework/psvi XSModel.cpp c/src/xercesc/internal XSObjectFactory.cpp Log: Fix a seg fault with PSVI and set basetype of anysimpletype to be anytype. Revision Changes Path 1.20 +7 -4 xml-xerces/c/src/xercesc/framework/psvi/XSModel.cpp Index: XSModel.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSModel.cpp,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- XSModel.cpp 29 Jan 2004 11:46:30 -0000 1.19 +++ XSModel.cpp 5 Feb 2004 18:09:53 -0000 1.20 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.20 2004/02/05 18:09:53 cargilld + * Fix a seg fault with PSVI and set basetype of anysimpletype to be anytype. + * * Revision 1.19 2004/01/29 11:46:30 cargilld * Code cleanup changes to get rid of various compiler diagnostic messages. * @@ -244,11 +247,11 @@ dvFactory.expandRegistryToFullSchemaSet(); addS4SToXSModel ( - getNamespaceItem(SchemaSymbols::fgURI_SCHEMAFORSCHEMA) + namespaceItem , dvFactory.getBuiltInRegistry() ); - - unsigned int numberOfNamespaces = fXSNamespaceItemList->size(); + // don't include S4S (thus the -1) + unsigned int numberOfNamespaces = fXSNamespaceItemList->size() -1; for (unsigned int j = 0; j < numberOfNamespaces; j++) addGrammarToXSModel(fXSNamespaceItemList->elementAt(j)); } @@ -416,7 +419,7 @@ fDeleteNamespace->addElement(namespaceItem); addS4SToXSModel ( - getNamespaceItem(SchemaSymbols::fgURI_SCHEMAFORSCHEMA) + namespaceItem , dvFactory.getBuiltInRegistry() ); } 1.20 +12 -4 xml-xerces/c/src/xercesc/internal/XSObjectFactory.cpp Index: XSObjectFactory.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XSObjectFactory.cpp,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- XSObjectFactory.cpp 7 Jan 2004 02:33:56 -0000 1.19 +++ XSObjectFactory.cpp 5 Feb 2004 18:09:53 -0000 1.20 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.20 2004/02/05 18:09:53 cargilld + * Fix a seg fault with PSVI and set basetype of anysimpletype to be anytype. + * * Revision 1.19 2004/01/07 02:33:56 knoaman * PSVI: inherit facets from base type * @@ -396,7 +399,7 @@ XSSimpleTypeDefinition* xsObj = (XSSimpleTypeDefinition*) xsModel->getXSObject(validator); if (!xsObj) { - XSSimpleTypeDefinition* baseType = 0; + XSTypeDefinition* baseType = 0; XSSimpleTypeDefinitionList* memberTypes = 0; XSSimpleTypeDefinition* primitiveOrItemType = 0; XSSimpleTypeDefinition::VARIETY typeVariety = XSSimpleTypeDefinition::VARIETY_ATOMIC; @@ -438,7 +441,7 @@ if (baseDV->getType() == DatatypeValidator::List) { baseType = addOrFind(baseDV, xsModel); - primitiveOrItemType = baseType->getItemType(); + primitiveOrItemType = ((XSSimpleTypeDefinition*) baseType)->getItemType(); } else { @@ -455,7 +458,7 @@ if (baseDV) { baseType = addOrFind(baseDV, xsModel); - primitiveOrItemType = baseType->getPrimitiveType(); + primitiveOrItemType = ((XSSimpleTypeDefinition*) baseType)->getPrimitiveType(); } else // built-in { @@ -467,6 +470,10 @@ primitiveTypeSelf = true; } } + else + { + baseType = xsModel->getTypeDefinition(SchemaSymbols::fgATTVAL_ANYTYPE, SchemaSymbols::fgURI_SCHEMAFORSCHEMA); + } xsObj = new (fMemoryManager) XSSimpleTypeDefinition ( @@ -1061,7 +1068,8 @@ } // inherit facets from base - if (xsST->getBaseType()) + + if (xsST->getBaseType() && xsST->getBaseType()->getTypeCategory() == XSTypeDefinition::SIMPLE_TYPE) { XSSimpleTypeDefinition* baseST = (XSSimpleTypeDefinition*) xsST->getBaseType(); XSFacetList* baseFacets = baseST->getFacets();
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]