}
case '`':
do_prematch:
- paren = RXf_PREMATCH;
+ paren = RX_BUFF_IDX_PREMATCH;
goto maybegetparen;
case '\'':
do_postmatch:
- paren = RXf_POSTMATCH;
+ paren = RX_BUFF_IDX_POSTMATCH;
goto maybegetparen;
case '&':
do_match:
- paren = RXf_MATCH;
+ paren = RX_BUFF_IDX_FULLMATCH;
goto maybegetparen;
case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
#else
dTHX;
#endif
+#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+ va_list args;
+#endif
#ifdef FAKE_PERSISTENT_SIGNAL_HANDLERS
(void) rsignal(sig, PL_csighandlerp);
if (PL_sig_ignoring[sig]) return;
exit(1);
#endif
#endif
+#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+ va_start(args, sig);
+#endif
if (
#ifdef SIGILL
sig == SIGILL ||
(*PL_sighandlerp)(sig);
else
S_raise_signal(aTHX_ sig);
+#if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
+ va_end(args);
+#endif
}
#if defined(FAKE_PERSISTENT_SIGNAL_HANDLERS) || defined(FAKE_DEFAULT_SIGNAL_HANDLERS)
return 0;
}
-int Perl_magic_freeisa(pTHX_ SV *sv, MAGIC *mg)
-{
- dVAR;
- GV** gvp;
- GV* gv;
- AV* isa;
-
- PERL_UNUSED_ARG(sv);
-
- if(PL_dirty) return 0;
-
- gvp = (GV**)hv_fetchs(GvSTASH((GV*)mg->mg_obj), "ISA", FALSE);
- gv = gvp ? *gvp : NULL;
- isa = (gv && isGV_with_GP(gv)) ? GvAV(gv) : NULL;
-
- if(isa) av_undef(isa);
-
- return 0;
-}
-
int
Perl_magic_setamagic(pTHX_ SV *sv, MAGIC *mg)
{
goto do_match;
case '`': /* ${^PREMATCH} caught below */
do_prematch:
- paren = RXf_PREMATCH;
+ paren = RX_BUFF_IDX_PREMATCH;
goto setparen;
case '\'': /* ${^POSTMATCH} caught below */
do_postmatch:
- paren = RXf_POSTMATCH;
+ paren = RX_BUFF_IDX_POSTMATCH;
goto setparen;
case '&':
do_match:
- paren = RXf_MATCH;
+ paren = RX_BUFF_IDX_FULLMATCH;
goto setparen;
case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':