STATIC void
scan_commit(scan_data_t *data)
{
+ dTHR;
STRLEN l = CHR_SVLEN(data->last_found);
STRLEN old_l = CHR_SVLEN(*data->longest);
}
if (OP(scan) != CURLYX) {
- int max = (reg_off_by_arg[OP(scan)] ? I32_MAX : U16_MAX);
+ int max = (reg_off_by_arg[OP(scan)]
+ ? I32_MAX
+ /* I32 may be smaller than U16 on CRAYs! */
+ : (I32_MAX < U16_MAX ? I32_MAX : U16_MAX));
int off = (reg_off_by_arg[OP(scan)] ? ARG(scan) : NEXT_OFF(scan));
int noff;
regnode *n = scan;
I32 n;
SV *listsv;
U8 flags = 0;
+ dTHR;
if (*PL_regcomp_parse == '^') { /* Complement of range. */
PL_regnaughty++;
STATIC void
reguni(UV uv, char* s, I32* lenp)
{
+ dTHR;
if (SIZE_ONLY) {
char tmpbuf[10];
*lenp = uv_to_utf8(tmpbuf, uv) - tmpbuf;
void
save_re_context(void)
-{
+{
+ dTHR;
SAVEPPTR(PL_bostr);
SAVEPPTR(PL_regprecomp); /* uncompiled string. */
SAVEI32(PL_regnpar); /* () count. */