From 4079fb39333352cb752a23b41adfcce18331256d Mon Sep 17 00:00:00 2001 From: Khaled Noaman <knoaman@apache.org> Date: Tue, 6 Jan 2004 19:07:16 +0000 Subject: [PATCH] Fix segfault when adding S4S git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@175653 13f79535-47bb-0310-9956-ffa450edef68 --- src/xercesc/framework/psvi/XSModel.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/xercesc/framework/psvi/XSModel.cpp b/src/xercesc/framework/psvi/XSModel.cpp index 1289541c7..5ef000272 100644 --- a/src/xercesc/framework/psvi/XSModel.cpp +++ b/src/xercesc/framework/psvi/XSModel.cpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.18 2004/01/06 19:07:16 knoaman + * Fix segfault when adding S4S + * * Revision 1.17 2003/12/30 21:35:46 neilg * even if there are no grammars to add to an XSModel, the S4S grammar must be included * @@ -233,11 +236,13 @@ XSModel::XSModel( XMLGrammarPool *grammarPool (void*) SchemaSymbols::fgURI_SCHEMAFORSCHEMA , namespaceItem ); - fDeleteNamespace->addElement(namespaceItem); + + DatatypeValidatorFactory dvFactory(manager); + dvFactory.expandRegistryToFullSchemaSet(); addS4SToXSModel ( getNamespaceItem(SchemaSymbols::fgURI_SCHEMAFORSCHEMA) - , namespaceItem->fGrammar->getDatatypeRegistry()->getBuiltInRegistry() + , dvFactory.getBuiltInRegistry() ); unsigned int numberOfNamespaces = fXSNamespaceItemList->size(); @@ -388,6 +393,9 @@ XSModel::XSModel( XSModel *baseModel // Add S4S namespace if needed if (!fAddedS4SGrammar) { + DatatypeValidatorFactory dvFactory(manager); + dvFactory.expandRegistryToFullSchemaSet(); + XSNamespaceItem* namespaceItem = new (manager) XSNamespaceItem ( this, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, manager @@ -406,7 +414,7 @@ XSModel::XSModel( XSModel *baseModel addS4SToXSModel ( getNamespaceItem(SchemaSymbols::fgURI_SCHEMAFORSCHEMA) - , namespaceItem->fGrammar->getDatatypeRegistry()->getBuiltInRegistry() + , dvFactory.getBuiltInRegistry() ); } -- GitLab