diff options
author | Nick Ing-Simmons <nik@tiuk.ti.com> | 2001-01-02 22:03:06 +0000 |
---|---|---|
committer | Nick Ing-Simmons <nik@tiuk.ti.com> | 2001-01-02 22:03:06 +0000 |
commit | a227d84de924cb415af5426df5a1096840ffba31 (patch) | |
tree | fe16d4527a498e69a57533a77240a882df1ca7bf /pp.c | |
parent | 24c3c6f8bf13cbed1aee15c4432fb6e3d8078ff4 (diff) | |
download | perl-a227d84de924cb415af5426df5a1096840ffba31.tar.gz |
Turn SvUTF8 off if not required in pp_chr and pp_stringify.
p4raw-id: //depot/perlio@8298
Diffstat (limited to 'pp.c')
-rw-r--r-- | pp.c | 23 |
1 files changed, 13 insertions, 10 deletions
@@ -1268,7 +1268,7 @@ PP(pp_subtract) if (SvIOK(TOPm1s)) { bool auvok = SvUOK(TOPm1s); bool buvok = SvUOK(TOPs); - + if (!auvok && !buvok) { /* ## IV - IV ## */ IV aiv = SvIVX(TOPm1s); IV biv = SvIVX(TOPs); @@ -1298,7 +1298,7 @@ PP(pp_subtract) UV auv = SvUVX(TOPm1s); UV buv = SvUVX(TOPs); IV result; - + if (auv >= buv) { SP--; SETu( auv - buv ); @@ -1415,7 +1415,7 @@ PP(pp_lt) if (SvIOK(TOPm1s)) { bool auvok = SvUOK(TOPm1s); bool buvok = SvUOK(TOPs); - + if (!auvok && !buvok) { /* ## IV < IV ## */ IV aiv = SvIVX(TOPm1s); IV biv = SvIVX(TOPs); @@ -1493,7 +1493,7 @@ PP(pp_gt) if (SvIOK(TOPm1s)) { bool auvok = SvUOK(TOPm1s); bool buvok = SvUOK(TOPs); - + if (!auvok && !buvok) { /* ## IV > IV ## */ IV aiv = SvIVX(TOPm1s); IV biv = SvIVX(TOPs); @@ -1571,7 +1571,7 @@ PP(pp_le) if (SvIOK(TOPm1s)) { bool auvok = SvUOK(TOPm1s); bool buvok = SvUOK(TOPs); - + if (!auvok && !buvok) { /* ## IV <= IV ## */ IV aiv = SvIVX(TOPm1s); IV biv = SvIVX(TOPs); @@ -1649,7 +1649,7 @@ PP(pp_ge) if (SvIOK(TOPm1s)) { bool auvok = SvUOK(TOPm1s); bool buvok = SvUOK(TOPs); - + if (!auvok && !buvok) { /* ## IV >= IV ## */ IV aiv = SvIVX(TOPm1s); IV biv = SvIVX(TOPs); @@ -1727,7 +1727,7 @@ PP(pp_ne) if (SvIOK(TOPm1s)) { bool auvok = SvUOK(TOPm1s); bool buvok = SvUOK(TOPs); - + if (!auvok && !buvok) { /* ## IV <=> IV ## */ IV aiv = SvIVX(TOPm1s); IV biv = SvIVX(TOPs); @@ -2621,7 +2621,7 @@ PP(pp_abs) { /* This will cache the NV value if string isn't actually integer */ IV iv = TOPi; - + if (SvIOK(TOPs)) { /* IVX is precise */ if (SvIsUV(TOPs)) { @@ -2637,7 +2637,7 @@ PP(pp_abs) IV_MIN and -IV_MIN should both be %100...00 and NV-able */ SETu(IV_MIN); } - } + } } } else{ NV value = TOPn; @@ -2969,6 +2969,9 @@ PP(pp_chr) XPUSHs(TARG); RETURN; } + else { + SvUTF8_off(TARG); + } SvGROW(TARG,2); SvCUR_set(TARG, 1); @@ -3535,7 +3538,7 @@ PP(pp_hslice) DIE(aTHX_ PL_no_helem, SvPV(keysv, n_a)); } if (PL_op->op_private & OPpLVAL_INTRO) { - if (preeminent) + if (preeminent) save_helem(hv, keysv, svp); else { STRLEN keylen; |