The IV/UV choice can be made inside uiv_2buf rather than sv_2pv_flags.
Nicholas Clark [Sat, 17 Dec 2005 12:00:51 +0000 (12:00 +0000)]
p4raw-id: //depot/perl@26386

sv.c

diff --git a/sv.c b/sv.c
index f81f56f..fbf7ed0 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -2494,10 +2494,7 @@ Perl_sv_2pv_flags(pTHX_ register SV *sv, STRLEN *lp, I32 flags)
 
        if (SvTYPE(sv) < SVt_PVIV)
            sv_upgrade(sv, SVt_PVIV);
-       if (isUIOK)
-           ptr = uiv_2buf(buf, 0, SvUVX(sv), 1, &ebuf);
-       else
-           ptr = uiv_2buf(buf, SvIVX(sv), 0, 0, &ebuf);
+       ptr = uiv_2buf(buf, SvIVX(sv), SvUVX(sv), isUIOK, &ebuf);
        /* inlined from sv_setpvn */
        SvGROW_mutable(sv, (STRLEN)(ebuf - ptr + 1));
        Move(ptr,SvPVX_mutable(sv),ebuf - ptr,char);