On Monday 17 October 2016 23:31:31 pali@cpan.org wrote: Encode::_utf8_on(sv) > @@ -972,12 +982,11 @@ SV * sv > CODE: > { > if (SvPOK(sv)) { > - SV *rsv = newSViv(SvUTF8(sv)); > - RETVAL = rsv; > - if (SvIsCOW(sv)) sv_force_normal(sv); > - SvUTF8_on(sv); > + if (SvTHINKFIRST(sv)) sv_force_normal(sv); > + RETVAL = newSViv(SvUTF8(sv)); > + SvUTF8_on(sv); > } else { > - RETVAL = &PL_sv_undef; > + RETVAL = &PL_sv_undef; > } > } > OUTPUT: Encode::_utf8_off(sv) > @@ -989,12 +998,11 @@ SV * sv > CODE: > { > if (SvPOK(sv)) { > - SV *rsv = newSViv(SvUTF8(sv)); > - RETVAL = rsv; > - if (SvIsCOW(sv)) sv_force_normal(sv); > - SvUTF8_off(sv); > + if (SvTHINKFIRST(sv)) sv_force_normal(sv); > + RETVAL = newSViv(SvUTF8(sv)); > + SvUTF8_off(sv); > } else { > - RETVAL = &PL_sv_undef; > + RETVAL = &PL_sv_undef; > } > } > OUTPUT: I'm not sure if these two functions shouldn't call also SvGETMAGIC(sv) before SvPOK(sv) and also SvSETMAGIC(sv) after SvUTF8_off/on(sv) calls.Thread Previous | Thread Next