summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2011-05-24 10:59:01 +0100
committerNicholas Clark <nick@ccl4.org>2011-06-11 09:40:01 +0200
commit1979170bfeba87d234d4d34023c2ea5feeb22f48 (patch)
tree85111eee90eb99a1999b228c8094162705149c01
parent4265b45d3e4359a48158b96f90aa017ade60632c (diff)
downloadperl-1979170bfeba87d234d4d34023c2ea5feeb22f48.tar.gz
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().
-rw-r--r--dump.c8
-rw-r--r--pad.c3
-rw-r--r--pad.h3
3 files changed, 7 insertions, 7 deletions
diff --git a/dump.c b/dump.c
index d8907c964e..564b198914 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 ff52eb8bd4..b5ee2bfa78 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 dec267ae27..7e130d879d 100644
--- a/pad.h
+++ b/pad.h
@@ -309,8 +309,7 @@ ling pad (lvalue) to C<gen>. Note that C<SvUV_set> 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)