From 1979170bfeba87d234d4d34023c2ea5feeb22f48 Mon Sep 17 00:00:00 2001 From: Nicholas Clark Date: Tue, 24 May 2011 10:59:01 +0100 Subject: [PATCH] Test that SvFLAGS() & SVpad_NAME is SVpad_NAME, not just non-zero. In Perl_find_rundefsv() and PAD_COMPNAME_FLAGS_isOUR(), replace longhand flags test with SvPAD_OUR(). --- dump.c | 8 +++++--- pad.c | 3 +-- pad.h | 3 +-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dump.c b/dump.c index d8907c9..564b198 100644 --- a/dump.c +++ b/dump.c @@ -1601,10 +1601,11 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo (int)(PL_dumpindent*level), "", (IV)SvREFCNT(sv), (int)(PL_dumpindent*level), ""); - if (!(flags & SVpad_NAME && (type == SVt_PVMG || type == SVt_PVNV))) { + if (!((flags & SVpad_NAME) == SVpad_NAME + && (type == SVt_PVMG || type == SVt_PVNV))) { if (flags & SVs_PADSTALE) sv_catpv(d, "PADSTALE,"); } - if (!(flags & SVpad_NAME && type == SVt_PVMG)) { + if (!((flags & SVpad_NAME) == SVpad_NAME && type == SVt_PVMG)) { if (flags & SVs_PADTMP) sv_catpv(d, "PADTMP,"); if (flags & SVs_PADMY) sv_catpv(d, "PADMY,"); } @@ -1728,7 +1729,8 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo PerlIO_putc(file, '\n'); } - if ((type == SVt_PVNV || type == SVt_PVMG) && SvFLAGS(sv) & SVpad_NAME) { + if ((type == SVt_PVNV || type == SVt_PVMG) + && (SvFLAGS(sv) & SVpad_NAME) == SVpad_NAME) { Perl_dump_indent(aTHX_ level, file, " COP_LOW = %"UVuf"\n", (UV) COP_SEQ_RANGE_LOW(sv)); Perl_dump_indent(aTHX_ level, file, " COP_HIGH = %"UVuf"\n", diff --git a/pad.c b/pad.c index ff52eb8..b5ee2bf 100644 --- a/pad.c +++ b/pad.c @@ -795,8 +795,7 @@ Perl_find_rundefsv(pTHX) po = pad_findlex("$_", find_runcv(NULL), PL_curcop->cop_seq, 1, NULL, &namesv, &flags); - if (po == NOT_IN_PAD - || (SvFLAGS(namesv) & (SVpad_NAME|SVpad_OUR)) == (SVpad_NAME|SVpad_OUR)) + if (po == NOT_IN_PAD || SvPAD_OUR(namesv)) return DEFSV; return PAD_SVl(po); diff --git a/pad.h b/pad.h index dec267a..7e130d8 100644 --- a/pad.h +++ b/pad.h @@ -309,8 +309,7 @@ ling pad (lvalue) to C. Note that C is hijacked for this purpose #define PAD_COMPNAME_SV(po) (*av_fetch(PL_comppad_name, (po), FALSE)) #define PAD_COMPNAME_FLAGS(po) SvFLAGS(PAD_COMPNAME_SV(po)) -#define PAD_COMPNAME_FLAGS_isOUR(po) \ - ((PAD_COMPNAME_FLAGS(po) & (SVpad_NAME|SVpad_OUR)) == (SVpad_NAME|SVpad_OUR)) +#define PAD_COMPNAME_FLAGS_isOUR(po) SvPAD_OUR(PAD_COMPNAME_SV(po)) #define PAD_COMPNAME_PV(po) SvPV_nolen(PAD_COMPNAME_SV(po)) #define PAD_COMPNAME_TYPE(po) pad_compname_type(po) -- 2.7.4