diff options
author | Kasimier T. Buchcik <kbuchcik@src.gnome.org> | 2005-12-12 15:13:40 +0000 |
---|---|---|
committer | Kasimier T. Buchcik <kbuchcik@src.gnome.org> | 2005-12-12 15:13:40 +0000 |
commit | 7ca5aedfc3bd7ff0b07f4c00a71f3dda03d158cf (patch) | |
tree | 47897c1c1380e5d1974ec3c30dc1736a2582fc94 /xmlschemas.c | |
parent | bc4cc9da776d09be8a3f2af39b13360c07d74bcd (diff) | |
download | android_external_libxml2-7ca5aedfc3bd7ff0b07f4c00a71f3dda03d158cf.tar.gz android_external_libxml2-7ca5aedfc3bd7ff0b07f4c00a71f3dda03d158cf.tar.bz2 android_external_libxml2-7ca5aedfc3bd7ff0b07f4c00a71f3dda03d158cf.zip |
Workaround for bug #323510: substituted the epsilon transition for a
* xmlschemas.c: Workaround for bug #323510: substituted the
epsilon transition for a labelled transition, in order to
avoid a bug in xmlregexp.c which eliminated the epsilon
transition and marked the initial state as final.
Diffstat (limited to 'xmlschemas.c')
-rw-r--r-- | xmlschemas.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/xmlschemas.c b/xmlschemas.c index 79d58a00..f7f7567c 100644 --- a/xmlschemas.c +++ b/xmlschemas.c @@ -12595,10 +12595,11 @@ xmlSchemaBuildContentModelForElement(xmlSchemaParserCtxtPtr ctxt, } else if ((particle->maxOccurs >= UNBOUNDED) && (particle->minOccurs < 2)) { /* Special case. */ - start = ctxt->state; + start = ctxt->state; ctxt->state = xmlAutomataNewTransition2(ctxt->am, start, NULL, - elemDecl->name, elemDecl->targetNamespace, elemDecl); - xmlAutomataNewEpsilon(ctxt->am, ctxt->state, start); + elemDecl->name, elemDecl->targetNamespace, elemDecl); + ctxt->state = xmlAutomataNewTransition2(ctxt->am, ctxt->state, ctxt->state, + elemDecl->name, elemDecl->targetNamespace, elemDecl); } else { int counter; int maxOccurs = particle->maxOccurs == UNBOUNDED ? |