diff options
author | Stephen McCamant <smcc@mit.edu> | 1998-07-06 16:22:17 -0500 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-07-07 22:13:11 +0000 |
commit | b5be31e977337013082e02b64d1c4513c158d1e6 (patch) | |
tree | 52f1a55284c8ee7a37dd5c9af11fecc5b0b2a36c | |
parent | 3419a968bbeefe011eeb78c3583a321853782e93 (diff) | |
download | perl-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.c | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -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)) |