This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Change IS_PADGV to isGV in op.c:newPADOP
authorFather Chrysostomos <sprout@cpan.org>
Thu, 18 Sep 2014 03:35:15 +0000 (20:35 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Thu, 18 Sep 2014 06:39:30 +0000 (23:39 -0700)
IS_PADGV is about to go bye-bye.  IS_PADGV was returning true only
for GVs marked as being present in the pad.  But since any GV can
make its way in there (just mention *foo under threads), it’s actually
somewhat meaningless.

This check in newPADOP is perhaps useless, too, since it is only called
by newGVOP in core (so sv is always a GV), and by B::Generate on CPAN,
which, again, gives it a GV.

op.c

diff --git a/op.c b/op.c
index fec74ca..cdd3c25 100644 (file)
--- a/op.c
+++ b/op.c
@@ -5186,7 +5186,7 @@ Perl_newPADOP(pTHX_ I32 type, I32 flags, SV *sv)
     padop->op_type = (OPCODE)type;
     padop->op_ppaddr = PL_ppaddr[type];
     padop->op_padix =
-       pad_alloc(type, IS_PADGV(sv) ? SVf_READONLY : SVs_PADTMP);
+       pad_alloc(type, isGV(sv) ? SVf_READONLY : SVs_PADTMP);
     SvREFCNT_dec(PAD_SVl(padop->op_padix));
     PAD_SETSV(padop->op_padix, sv);
     assert(sv);