summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen McCamant <smcc@mit.edu>1998-07-06 16:22:17 -0500
committerGurusamy Sarathy <gsar@cpan.org>1998-07-07 22:13:11 +0000
commitb5be31e977337013082e02b64d1c4513c158d1e6 (patch)
tree52f1a55284c8ee7a37dd5c9af11fecc5b0b2a36c
parent3419a968bbeefe011eeb78c3583a321853782e93 (diff)
downloadperl-b5be31e977337013082e02b64d1c4513c158d1e6.tar.gz
Re: Inconsistent arithmetics on refs
Message-ID: <13729.33816.311236.995647@alias-2.pr.mcs.net> p4raw-id: //depot/perl@1361
-rw-r--r--sv.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/sv.c b/sv.c
index 0ff19a2848..f37989eab4 100644
--- a/sv.c
+++ b/sv.c
@@ -3442,10 +3442,13 @@ sv_inc(register SV *sv)
croak(no_modify);
}
if (SvROK(sv)) {
+ IV i;
#ifdef OVERLOAD
- if (SvAMAGIC(sv) && AMG_CALLun(sv,inc)) return;
+ if (SvAMAGIC(sv) && AMG_CALLun(sv,inc)) return;
#endif /* OVERLOAD */
- sv_unref(sv);
+ i = (IV)SvRV(sv);
+ sv_unref(sv);
+ sv_setiv(sv, i);
}
}
if (SvGMAGICAL(sv))
@@ -3519,10 +3522,13 @@ sv_dec(register SV *sv)
croak(no_modify);
}
if (SvROK(sv)) {
+ IV i;
#ifdef OVERLOAD
- if (SvAMAGIC(sv) && AMG_CALLun(sv,dec)) return;
+ if (SvAMAGIC(sv) && AMG_CALLun(sv,dec)) return;
#endif /* OVERLOAD */
- sv_unref(sv);
+ i = (IV)SvRV(sv);
+ sv_unref(sv);
+ sv_setiv(sv, i);
}
}
if (SvGMAGICAL(sv))