summaryrefslogtreecommitdiff
path: root/mg.c
diff options
context:
space:
mode:
authorLeon Timmermans <fawaka@gmail.com>2021-01-12 23:47:55 +0100
committerLeon Timmermans <fawaka@gmail.com>2021-06-02 01:38:31 +0200
commit55f5e7656892bb5ab03f4f19defe887167db7236 (patch)
treecae18826d99951815bc6cc949fad48de091b9c13 /mg.c
parent307a07c2d5f032a3d666d0548847166330d702b4 (diff)
downloadperl-55f5e7656892bb5ab03f4f19defe887167db7236.tar.gz
Call magic on all elements on %SIG delocalization
Diffstat (limited to 'mg.c')
-rw-r--r--mg.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/mg.c b/mg.c
index 3355df1b4b..bd71ce15b7 100644
--- a/mg.c
+++ b/mg.c
@@ -1827,6 +1827,24 @@ Perl_magic_setsig(pTHX_ SV *sv, MAGIC *mg)
#endif /* !PERL_MICRO */
int
+Perl_magic_setsigall(pTHX_ SV* sv, MAGIC* mg)
+{
+ PERL_ARGS_ASSERT_MAGIC_SETSIGALL;
+ PERL_UNUSED_ARG(mg);
+
+ if (PL_localizing == 2) {
+ HV* hv = (HV*)sv;
+ HE* current;
+ hv_iterinit(hv);
+ while ((current = hv_iternext(hv))) {
+ SV* sigelem = hv_iterval(hv, current);
+ mg_set(sigelem);
+ }
+ }
+ return 0;
+}
+
+int
Perl_magic_setisa(pTHX_ SV *sv, MAGIC *mg)
{
PERL_ARGS_ASSERT_MAGIC_SETISA;