X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=sv.c;h=1418cf78e99c2d4e34dc359caa9e4ed31ff08c9c;hb=0bfa2a8afc04ca8a47987d5890bbbe751faf4444;hp=f918d5ab2722a1cf8a039135d858df3dde86a79b;hpb=5c284bb074748eab0ba4ff8e53eb1eeeb0f7a962;p=p5sagit%2Fp5-mst-13.2.git diff --git a/sv.c b/sv.c index f918d5a..1418cf7 100644 --- a/sv.c +++ b/sv.c @@ -1915,8 +1915,7 @@ Perl_sv_2iv_flags(pTHX_ register SV *sv, I32 flags) } assert(SvTYPE(sv) >= SVt_PVMG); /* This falls through to the report_uninit inside S_sv_2iuv_common. */ - } - if (SvTHINKFIRST(sv)) { + } else if (SvTHINKFIRST(sv)) { if (SvROK(sv)) { return_rok: if (SvAMAGIC(sv)) { @@ -1989,8 +1988,7 @@ Perl_sv_2uv_flags(pTHX_ register SV *sv, I32 flags) } assert(SvTYPE(sv) >= SVt_PVMG); /* This falls through to the report_uninit inside S_sv_2iuv_common. */ - } - if (SvTHINKFIRST(sv)) { + } else if (SvTHINKFIRST(sv)) { if (SvROK(sv)) { return_rok: if (SvAMAGIC(sv)) { @@ -2352,7 +2350,6 @@ char * Perl_sv_2pv_flags(pTHX_ register SV *sv, STRLEN *lp, I32 flags) { register char *s; - int olderrno; if (!sv) { if (lp) @@ -2496,10 +2493,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); @@ -2514,11 +2508,12 @@ Perl_sv_2pv_flags(pTHX_ register SV *sv, STRLEN *lp, I32 flags) SvIsUV_on(sv); } else if (SvNOKp(sv)) { + const int olderrno = errno; if (SvTYPE(sv) < SVt_PVNV) sv_upgrade(sv, SVt_PVNV); /* The +20 is pure guesswork. Configure test needed. --jhi */ s = SvGROW_mutable(sv, NV_DIG + 20); - olderrno = errno; /* some Xenix systems wipe out errno here */ + /* some Xenix systems wipe out errno here */ #ifdef apollo if (SvNVX(sv) == 0.0) (void)strcpy(s,"0");