aboutsummaryrefslogtreecommitdiffstats
path: root/xmlregexp.c
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@redhat.com>2009-08-12 12:21:42 +0200
committerDaniel Veillard <veillard@redhat.com>2009-08-12 12:21:42 +0200
commit11e28e4dfb84804474a3d7a4bfb08bae8f00bc0a (patch)
tree62834b9ea940e4362844f008797737694be05c2e /xmlregexp.c
parenteab3ac94c781e686c86c5a1502bf150f86750fd7 (diff)
downloadandroid_external_libxml2-11e28e4dfb84804474a3d7a4bfb08bae8f00bc0a.tar.gz
android_external_libxml2-11e28e4dfb84804474a3d7a4bfb08bae8f00bc0a.tar.bz2
android_external_libxml2-11e28e4dfb84804474a3d7a4bfb08bae8f00bc0a.zip
570702 fix a bug in regexp determinism checking
* xmlregexp.c: xmlFAComputesDeterminism was bugged as it removed as coalesced transitions on with sane source destination and atoms but not looking at counters
Diffstat (limited to 'xmlregexp.c')
-rw-r--r--xmlregexp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/xmlregexp.c b/xmlregexp.c
index 73598a53..5a48c7a8 100644
--- a/xmlregexp.c
+++ b/xmlregexp.c
@@ -2646,7 +2646,9 @@ xmlFAComputesDeterminism(xmlRegParserCtxtPtr ctxt) {
continue;
if (t2->atom != NULL) {
if (t1->to == t2->to) {
- if (xmlFAEqualAtoms(t1->atom, t2->atom))
+ if (xmlFAEqualAtoms(t1->atom, t2->atom) &&
+ (t1->counter == t2->counter) &&
+ (t1->count == t2->count))
t2->to = -1; /* eliminated */
}
}