aboutsummaryrefslogtreecommitdiffstats
path: root/xmlschemas.c
diff options
context:
space:
mode:
authorKasimier T. Buchcik <kbuchcik@src.gnome.org>2005-12-12 15:13:40 +0000
committerKasimier T. Buchcik <kbuchcik@src.gnome.org>2005-12-12 15:13:40 +0000
commit7ca5aedfc3bd7ff0b07f4c00a71f3dda03d158cf (patch)
tree47897c1c1380e5d1974ec3c30dc1736a2582fc94 /xmlschemas.c
parentbc4cc9da776d09be8a3f2af39b13360c07d74bcd (diff)
downloadandroid_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.c7
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 ?