summaryrefslogtreecommitdiff
path: root/scope.c
diff options
context:
space:
mode:
Diffstat (limited to 'scope.c')
-rw-r--r--scope.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/scope.c b/scope.c
index 93ef4b3fc9..046b3387d5 100644
--- a/scope.c
+++ b/scope.c
@@ -778,9 +778,15 @@ Perl_leave_scope(pTHX_ I32 base)
*(char**)ptr = str;
}
break;
+ case SAVEt_GVSV: /* scalar slot in GV */
+ value = MUTABLE_SV(SSPOPPTR);
+ gv = MUTABLE_GV(SSPOPPTR);
+ ptr = &GvSV(gv);
+ goto restore_svp;
case SAVEt_GENERIC_SVREF: /* generic sv */
value = MUTABLE_SV(SSPOPPTR);
ptr = SSPOPPTR;
+ restore_svp:
sv = *(SV**)ptr;
*(SV**)ptr = value;
SvREFCNT_dec(sv);