summaryrefslogtreecommitdiff
path: root/gv.c
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2014-09-15 18:03:41 -0700
committerFather Chrysostomos <sprout@cpan.org>2014-09-15 18:03:41 -0700
commit34d81fc46b99fe9152b3744e81381ff804c6451c (patch)
tree9a8d2bb436479a7b2e84eeb6e526ae31c77b5656 /gv.c
parent53d063424e1103bbc2fe13cbdd0f9854820c1adf (diff)
downloadperl-34d81fc46b99fe9152b3744e81381ff804c6451c.tar.gz
Avoid reifing GVs in gv.c:gv_try_downgrade
I’m not sure that it’s even possible for a CV with a name hek to reach this code path, but if that happens this avoids reifying the GV.
Diffstat (limited to 'gv.c')
-rw-r--r--gv.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gv.c b/gv.c
index 22adb90a9f..b61b21c50b 100644
--- a/gv.c
+++ b/gv.c
@@ -3504,7 +3504,7 @@ Perl_gv_try_downgrade(pTHX_ GV *gv)
(void)hv_deletehek(stash, gvnhek, G_DISCARD);
} else if (GvMULTI(gv) && cv && SvREFCNT(cv) == 1 &&
!SvOBJECT(cv) && !SvMAGICAL(cv) && !SvREADONLY(cv) &&
- CvSTASH(cv) == stash && CvGV(cv) == gv &&
+ CvSTASH(cv) == stash && !CvNAMED(cv) && CvGV(cv) == gv &&
CvCONST(cv) && !CvMETHOD(cv) && !CvLVALUE(cv) && !CvUNIQUE(cv) &&
!CvNODEBUG(cv) && !CvCLONE(cv) && !CvCLONED(cv) && !CvANON(cv) &&
(namehek = GvNAME_HEK(gv)) &&