Fix an xclass matching issue in JIT.

This commit is contained in:
Zoltán Herczeg 2018-09-21 07:24:34 +00:00
parent 3b3dc09f38
commit 8800191109
3 changed files with 6 additions and 3 deletions

View File

@ -18,6 +18,8 @@ a greater than 1 fixed quantifier. This issue was found by Yunho Kim.
that use the standard POSIX names. This should help avoid linking with the
wrong library in some environments.
5. Fix an xclass matching issue in JIT.
Version 10.32 10-September-2018
-------------------------------

View File

@ -7012,9 +7012,6 @@ int i, j, k, len, c;
if (!sljit_has_cpu_feature(SLJIT_HAS_CMOV))
return FALSE;
if (invert)
nclass = !nclass;
len = 0;
for (i = 0; i < 32; i++)
@ -7096,6 +7093,9 @@ if (j != 0)
}
}
if (invert)
nclass = !nclass;
type = nclass ? SLJIT_NOT_EQUAL : SLJIT_EQUAL;
add_jump(compiler, backtracks, CMP(type, TMP2, 0, SLJIT_IMM, 0));
return TRUE;

View File

@ -383,6 +383,7 @@ static struct regression_test_case regression_test_cases[] = {
{ MU, A, 0, 0, "[^\\x{801}-\\x{fffe}]+", "\xe0\xa0\x81#\xc3\xa9\xf0\x90\x90\x80\xe0\xa0\x80\xef\xbf\xbf\xef\xbf\xbe" },
{ MU, A, 0, 0, "[\\x{10001}-\\x{10fffe}]+", "#\xc3\xa9\xe2\xb1\xa5\xf0\x90\x80\x80\xf0\x90\x80\x81\xf4\x8f\xbf\xbe\xf4\x8f\xbf\xbf" },
{ MU, A, 0, 0, "[^\\x{10001}-\\x{10fffe}]+", "\xf0\x90\x80\x81#\xc3\xa9\xe2\xb1\xa5\xf0\x90\x80\x80\xf4\x8f\xbf\xbf\xf4\x8f\xbf\xbe" },
{ CMU, A, 0, 0 | F_NOMATCH, "^[\\x{0100}-\\x{017f}]", " " },
/* Unicode properties. */
{ MUP, A, 0, 0, "[1-5\xc3\xa9\\w]", "\xc3\xa1_" },