7255 |
add_jump(compiler, &(BACKTRACK_AS(bracket_backtrack)->u.condfailed), JUMP(SLJIT_ZERO)); |
add_jump(compiler, &(BACKTRACK_AS(bracket_backtrack)->u.condfailed), JUMP(SLJIT_ZERO)); |
7256 |
matchingpath += 1 + 2 * IMM2_SIZE; |
matchingpath += 1 + 2 * IMM2_SIZE; |
7257 |
} |
} |
7258 |
else if (*matchingpath == OP_RREF || *matchingpath == OP_DNRREF) |
else if (*matchingpath == OP_RREF || *matchingpath == OP_DNRREF || *matchingpath == OP_FAIL) |
7259 |
{ |
{ |
7260 |
/* Never has other case. */ |
/* Never has other case. */ |
7261 |
BACKTRACK_AS(bracket_backtrack)->u.condfailed = NULL; |
BACKTRACK_AS(bracket_backtrack)->u.condfailed = NULL; |
7262 |
SLJIT_ASSERT(!has_alternatives); |
SLJIT_ASSERT(!has_alternatives); |
7263 |
|
|
7264 |
|
if (*matchingpath == OP_FAIL) |
7265 |
|
stacksize = 0; |
7266 |
if (*matchingpath == OP_RREF) |
if (*matchingpath == OP_RREF) |
7267 |
{ |
{ |
7268 |
stacksize = GET2(matchingpath, 1); |
stacksize = GET2(matchingpath, 1); |
7312 |
matchingpath = cc; |
matchingpath = cc; |
7313 |
} |
} |
7314 |
} |
} |
|
else if (*matchingpath == OP_FAIL) |
|
|
{ |
|
|
SLJIT_ASSERT(!has_alternatives); |
|
|
if (*cc == OP_ALT) |
|
|
{ |
|
|
matchingpath = cc + 1 + LINK_SIZE; |
|
|
cc += GET(cc, 1); |
|
|
} |
|
|
else |
|
|
matchingpath = cc; |
|
|
} |
|
7315 |
else |
else |
7316 |
{ |
{ |
7317 |
SLJIT_ASSERT(has_alternatives && *matchingpath >= OP_ASSERT && *matchingpath <= OP_ASSERTBACK_NOT); |
SLJIT_ASSERT(has_alternatives && *matchingpath >= OP_ASSERT && *matchingpath <= OP_ASSERTBACK_NOT); |