Fix recursion issue in JIT

This commit is contained in:
Zoltan Herczeg 2022-04-14 19:09:40 +00:00
parent 4279abbd7d
commit d07c967b3a
1 changed files with 4 additions and 2 deletions

View File

@ -2909,14 +2909,15 @@ while (cc < ccend)
i = 1 + 32 / (int)sizeof(PCRE2_UCHAR); i = 1 + 32 / (int)sizeof(PCRE2_UCHAR);
#endif #endif
if (PRIVATE_DATA(cc) != 0) if (PRIVATE_DATA(cc) != 0)
{
private_count = 1;
private_srcw[0] = PRIVATE_DATA(cc);
switch(get_class_iterator_size(cc + i)) switch(get_class_iterator_size(cc + i))
{ {
case 1: case 1:
private_srcw[0] = PRIVATE_DATA(cc);
break; break;
case 2: case 2:
private_srcw[0] = PRIVATE_DATA(cc);
if (recurse_check_bit(common, private_srcw[0])) if (recurse_check_bit(common, private_srcw[0]))
{ {
private_count = 2; private_count = 2;
@ -2929,6 +2930,7 @@ while (cc < ccend)
SLJIT_UNREACHABLE(); SLJIT_UNREACHABLE();
break; break;
} }
}
cc += i; cc += i;
break; break;