develooper Front page | perl.perl5.porters | Postings from October 2016

Re: Encode.xs and sv_force_normal

Thread Previous | Thread Next
From:
pali
Date:
October 23, 2016 04:01
Subject:
Re: Encode.xs and sv_force_normal
Message ID:
20161022111644.GA6097@pali
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


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About