summaryrefslogtreecommitdiff
path: root/pp.c
diff options
context:
space:
mode:
authorYitzchak Scott-Thoennes <sthoenna@efn.org>2004-01-15 06:10:37 -0800
committerDave Mitchell <davem@fdisolutions.com>2004-01-16 19:24:14 +0000
commit891f9566d7fc0fb068ade9d98aed69773e02d39c (patch)
tree76e1dc8cf2b8b754bbb271ca11f01314964798b8 /pp.c
parent0bd0581c0da439d1bc9686c40ce8eabbab0f37cd (diff)
downloadperl-891f9566d7fc0fb068ade9d98aed69773e02d39c.tar.gz
Re: [perl #24816] Magic vars seem unsure if they are purely numeric
Message-Id: <20040115221037.GA2392@efn.org> Add sv_2iv_flags() to allow magic to be optionally processed. p4raw-id: //depot/perl@22163
Diffstat (limited to 'pp.c')
-rw-r--r--pp.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/pp.c b/pp.c
index 7ebc7b807f..8898735d42 100644
--- a/pp.c
+++ b/pp.c
@@ -2204,11 +2204,11 @@ PP(pp_bit_and)
if (SvGMAGICAL(right)) mg_get(right);
if (SvNIOKp(left) || SvNIOKp(right)) {
if (PL_op->op_private & HINT_INTEGER) {
- IV i = SvIV(left) & SvIV(right);
+ IV i = SvIV_nomg(left) & SvIV_nomg(right);
SETi(i);
}
else {
- UV u = SvUV(left) & SvUV(right);
+ UV u = SvUV_nomg(left) & SvUV_nomg(right);
SETu(u);
}
}
@@ -2229,11 +2229,11 @@ PP(pp_bit_xor)
if (SvGMAGICAL(right)) mg_get(right);
if (SvNIOKp(left) || SvNIOKp(right)) {
if (PL_op->op_private & HINT_INTEGER) {
- IV i = (USE_LEFT(left) ? SvIV(left) : 0) ^ SvIV(right);
+ IV i = (USE_LEFT(left) ? SvIV_nomg(left) : 0) ^ SvIV_nomg(right);
SETi(i);
}
else {
- UV u = (USE_LEFT(left) ? SvUV(left) : 0) ^ SvUV(right);
+ UV u = (USE_LEFT(left) ? SvUV_nomg(left) : 0) ^ SvUV_nomg(right);
SETu(u);
}
}
@@ -2254,11 +2254,11 @@ PP(pp_bit_or)
if (SvGMAGICAL(right)) mg_get(right);
if (SvNIOKp(left) || SvNIOKp(right)) {
if (PL_op->op_private & HINT_INTEGER) {
- IV i = (USE_LEFT(left) ? SvIV(left) : 0) | SvIV(right);
+ IV i = (USE_LEFT(left) ? SvIV_nomg(left) : 0) | SvIV_nomg(right);
SETi(i);
}
else {
- UV u = (USE_LEFT(left) ? SvUV(left) : 0) | SvUV(right);
+ UV u = (USE_LEFT(left) ? SvUV_nomg(left) : 0) | SvUV_nomg(right);
SETu(u);
}
}
@@ -2357,11 +2357,11 @@ PP(pp_complement)
mg_get(sv);
if (SvNIOKp(sv)) {
if (PL_op->op_private & HINT_INTEGER) {
- IV i = ~SvIV(sv);
+ IV i = ~SvIV_nomg(sv);
SETi(i);
}
else {
- UV u = ~SvUV(sv);
+ UV u = ~SvUV_nomg(sv);
SETu(u);
}
}
@@ -2370,7 +2370,7 @@ PP(pp_complement)
register I32 anum;
STRLEN len;
- SvSetSV(TARG, sv);
+ sv_setsv_nomg(TARG, sv);
tmps = (U8*)SvPV_force(TARG, len);
anum = len;
if (SvUTF8(TARG)) {