From: Jerry D. Hedden Date: Thu, 11 Oct 2007 10:23:03 +0000 (-0400) Subject: pp_int should treat refs as UVs (not IVs) X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=19119994cb808157abfddb5879338976e13d711a;p=p5sagit%2Fp5-mst-13.2.git pp_int should treat refs as UVs (not IVs) From: "Jerry D. Hedden" Message-ID: <1ff86f510710110723p6cbed55fo558777258061b556@mail.gmail.com> p4raw-id: //depot/perl@32100 --- diff --git a/pp.c b/pp.c index 3e22feb..d533738 100644 --- a/pp.c +++ b/pp.c @@ -2874,7 +2874,7 @@ PP(pp_int) { dVAR; dSP; dTARGET; tryAMAGICun(int); { - SV *sv = TOPs; + dTOPss; IV iv; /* XXX it's arguable that compiler casting to IV might be subtly different from modf (for numbers inside (IV_MIN,UV_MAX)) in which @@ -2886,7 +2886,7 @@ PP(pp_int) if (!tsv) break; if (SvROK(tsv) && SvRV(tsv) == SvRV(sv)) { - SETi(PTR2IV(SvRV(sv))); + SETu(PTR2UV(SvRV(sv))); RETURN; } else @@ -2904,7 +2904,7 @@ PP(pp_int) SETi(iv); } else if (SvROK(sv)) { - SETi(iv); + SETu(PTR2UV(SvRV(sv))); } else { const NV value = SvNV(sv);