Branch Coverage

Encode.xs
Criterion Covered Total %
branch 402 708 56.7


line true false branch
51 0 190 PUSHMARK(sp);
52 0 190 XPUSHs(sv);
53 190 190 while (enc->name[i]) {
55 0 190 XPUSHs(sv_2mortal(newSVpvn(name, strlen(name))));
75 15 8 if (!modify) {
78 4 11 if (SvTAINTED(*src))
0 4 if (SvTAINTED(*src))
79 0 0 SvTAINTED_on(tmp);
83 23 0 if (*slen) {
84 0 23 if (!utf8_to_bytes(*s, slen))
94 13 7 if (!modify) {
96 3 10 if (SvTAINTED(*src))
0 3 if (SvTAINTED(*src))
97 0 0 SvTAINTED_on(tmp);
101 18 2 *s = (U8 *)SvPV_nomg(*src, *slen);
116 0 268 PUSHMARK(sp);
117 0 268 XPUSHs(sv_2mortal(newSVuv(ch)));
121 0 268 if (argc != 1){
127 268 0 FREETMPS;
141 0 10 PUSHMARK(sp);
142 14 10 for (i=0; i
143 0 14 XPUSHs(sv_2mortal(newSVuv(s[i])));
147 0 10 if (argc != 1){
153 10 0 FREETMPS;
173 0 58864 U8 *trm = term ? (U8*) SvPV(term, trmlen) : NULL;
0 0 U8 *trm = term ? (U8*) SvPV(term, trmlen) : NULL;
175 235 58629 if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */
217 18 if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */
217 0 if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */
177 0 58864 if (offset) {
179 0 0 if (slen > *offset){ /* safeguard against slen overflow */
187 0 58864 if (slen == 0){
193 3434 58711 while( (code = do_encode(dir, s, &slen, d, dlen, &dlen, !check,
199 3434 0 if (code == ENCODE_FALLBACK || code == ENCODE_PARTIAL ||
3323 111 if (code == ENCODE_FALLBACK || code == ENCODE_PARTIAL ||
3323 0 if (code == ENCODE_FALLBACK || code == ENCODE_PARTIAL ||
216 1143 0 if (sdone != 0) { /* has src ever been processed ? */
228 1143 0 d = (U8 *) SvGROW(dst, SvLEN(dst) + more);
1143 0 d = (U8 *) SvGROW(dst, SvLEN(dst) + more);
230 0 1143 if (ddone >= SvLEN(dst)) {
241 1577 603 if (dir == enc->f_utf8) {
247 0 1577 if (clen > tlen - sdone - slen) break;
248 1 1576 if (check & ENCODE_DIE_ON_ERR) {
253 129 1447 if (check & ENCODE_WARN_ON_ERR){
257 2 1574 if (check & ENCODE_RETURN_ON_ERR){
260 1034 540 if (check & (ENCODE_PERLQQ|ENCODE_HTMLCREF|ENCODE_XMLCREF)){
266 136 898 : newSVpvf(check & ENCODE_PERLQQ ? "\\x{%04" UVxf "}" :
260 638 : newSVpvf(check & ENCODE_PERLQQ ? "\\x{%04" UVxf "}" :
131 129 : newSVpvf(check & ENCODE_PERLQQ ? "\\x{%04" UVxf "}" :
269 1031 3 substr = SvPV(subchar, sublen);
270 4 1030 if (SvUTF8(subchar) && sublen && !utf8_to_bytes((U8 *)substr, &sublen)) { /* make sure no decoded string gets in */
4 0 if (SvUTF8(subchar) && sublen && !utf8_to_bytes((U8 *)substr, &sublen)) { /* make sure no decoded string gets in */
0 4 if (SvUTF8(subchar) && sublen && !utf8_to_bytes((U8 *)substr, &sublen)) { /* make sure no decoded string gets in */
287 0 603 if (check & ENCODE_DIE_ON_ERR){
292 0 603 if (check & ENCODE_WARN_ON_ERR){
298 39 564 if (check & ENCODE_RETURN_ON_ERR){
301 514 50 if (check &
308 130 384 : newSVpvf("\\x%02" UVXf, (UV)s[slen]);
309 0 514 substr = SvPVutf8(subchar, sublen);
328 0 0 Perl_croak(aTHX_ "Unexpected code %d converting %s %s",
335 18258 40605 if (check && !(check & ENCODE_LEAVE_SRC)){
18178 80 if (check && !(check & ENCODE_LEAVE_SRC)){
337 144 18034 if (sdone) {
341 8 18170 SvSETMAGIC(src);
357 0 58863 if (offset)
362 0 58863 if (retcode) *retcode = code;
372 31133 0 if (!sv || SvTYPE(sv) != SVt_PVHV)
0 31133 if (!sv || SvTYPE(sv) != SVt_PVHV)
376 76 31057 if (!svp)
378 31057 0 return SvTRUE(*svp);
0 31057 return SvTRUE(*svp);
0 0 return SvTRUE(*svp);
0 31057 return SvTRUE(*svp);
0 0 return SvTRUE(*svp);
0 0 return SvTRUE(*svp);
0 31057 return SvTRUE(*svp);
0 0 return SvTRUE(*svp);
0 0 return SvTRUE(*svp);
0 0 return SvTRUE(*svp);
0 0 return SvTRUE(*svp);
0 0 return SvTRUE(*svp);
31057 0 return SvTRUE(*svp);
31057 0 return SvTRUE(*svp);
0 31057 return SvTRUE(*svp);
0 0 return SvTRUE(*svp);
0 0 return SvTRUE(*svp);
31057 0 return SvTRUE(*svp);
0 0 return SvTRUE(*svp);
411 46362 12 uv = NATIVE_TO_UTF(*s) & UTF_START_MASK(UTF8SKIP(s));
416 92396 46212 while (len--) {
417 162 92234 if (!UTF8_IS_CONTINUATION(*s)) {
421 1 92233 if (uv & UTF_ACCUMULATION_OVERFLOW_MASK)
429 46211 1 if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) {
46194 17 if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) {
45429 765 if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) {
527 44902 if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) {
18 509 if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) {
4 14 if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) {
0 4 if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) {
0 0 if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) {
21 46190 if (overflowed || *rlen > (STRLEN)UNISKIP(uv)) {
449 14 31115 if (SvROK(check_sv)) {
456 31115 0 check = SvIV_nomg(check_sv);
462 31129 0 dlen = (s && e && s < e) ? e-s+1 : 1;
31129 0 dlen = (s && e && s < e) ? e-s+1 : 1;
31127 2 dlen = (s && e && s < e) ? e-s+1 : 1;
463 31129 0 d = (U8 *) SvGROW(dst, dlen);
0 31129 d = (U8 *) SvGROW(dst, dlen);
465 112929 31040 while (s < e) {
466 66382 46547 if (UTF8_IS_INVARIANT(*s)) {
473 46393 154 if (! UTF8_IS_CONTINUATION(*s)) {
479 56 46337 if ((s + skip) > e) {
481 37 19 if (e-s >= 2)
486 47 9 if ((stop_at_partial || (check & ENCODE_STOP_AT_PARTIAL)) && ulen == (STRLEN)(e-s))
0 47 if ((stop_at_partial || (check & ENCODE_STOP_AT_PARTIAL)) && ulen == (STRLEN)(e-s))
4 5 if ((stop_at_partial || (check & ENCODE_STOP_AT_PARTIAL)) && ulen == (STRLEN)(e-s))
493 155 46182 if (uv == 0)
495 2527 43655 else if (strict && !UNICODE_IS_STRICT(uv))
2516 11 else if (strict && !UNICODE_IS_STRICT(uv))
718 1798 else if (strict && !UNICODE_IS_STRICT(uv))
718 0 else if (strict && !UNICODE_IS_STRICT(uv))
2498 18 else if (strict && !UNICODE_IS_STRICT(uv))
2497 1 else if (strict && !UNICODE_IS_STRICT(uv))
2497 18 else if (strict && !UNICODE_IS_STRICT(uv))
509 361 0 if (uv == 0)
511 361 0 if (encode || ulen == 0)
0 361 if (encode || ulen == 0)
515 369 22 if (!encode && (check & (ENCODE_DIE_ON_ERR|ENCODE_WARN_ON_ERR|ENCODE_PERLQQ)))
191 178 if (!encode && (check & (ENCODE_DIE_ON_ERR|ENCODE_WARN_ON_ERR|ENCODE_PERLQQ)))
516 267 191 for (i=0; i
517 65 326 if (check & ENCODE_DIE_ON_ERR){
518 14 51 if (encode)
519 14 0 Perl_croak(aTHX_ ERR_ENCODE_NOMAP, uv, (strict ? "UTF-8" : "utf8"));
521 47 4 Perl_croak(aTHX_ ERR_DECODE_STR_NOMAP, (strict ? "UTF-8" : "utf8"), esc);
523 129 197 if (check & ENCODE_WARN_ON_ERR){
524 0 129 if (encode)
525 0 0 Perl_warner(aTHX_ packWARN(WARN_UTF8),
528 0 129 Perl_warner(aTHX_ packWARN(WARN_UTF8),
531 20 306 if (check & ENCODE_RETURN_ON_ERR) {
534 14 292 if (check & (ENCODE_PERLQQ|ENCODE_HTMLCREF|ENCODE_XMLCREF)){
538 3 11 if (encode) {
542 2 1 : newSVpvf(check & ENCODE_PERLQQ
1 0 : newSVpvf(check & ENCODE_PERLQQ
544 0 1 : check & ENCODE_HTMLCREF ? "&#%" UVuf ";"
0 0 : check & ENCODE_HTMLCREF ? "&#%" UVuf ";"
546 3 0 substr = SvPV(subchar, sublen);
547 0 3 if (SvUTF8(subchar) && sublen && !utf8_to_bytes((U8 *)substr, &sublen)) { /* make sure no decoded string gets in */
0 0 if (SvUTF8(subchar) && sublen && !utf8_to_bytes((U8 *)substr, &sublen)) { /* make sure no decoded string gets in */
0 0 if (SvUTF8(subchar) && sublen && !utf8_to_bytes((U8 *)substr, &sublen)) { /* make sure no decoded string gets in */
552 10 1 if (fallback_cb != &PL_sv_undef) {
558 0 1 if (check & (ENCODE_HTMLCREF|ENCODE_XMLCREF))
559 0 0 for (i=0; i
0 0 for (i=0; i
562 0 11 substr = SvPVutf8(subchar, sublen);
569 14 0 d = (U8 *) SvGROW(dst, dlen) + SvCUR(dst);
0 14 d = (U8 *) SvGROW(dst, dlen) + SvCUR(dst);
573 42 250 if (SvLEN(dst) < dlen) {
608 9 30538 SvGETMAGIC(src);
0 9 SvGETMAGIC(src);
609 0 30547 SvGETMAGIC(check_sv);
0 0 SvGETMAGIC(check_sv);
610 30537 10 check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
30537 0 check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
611 109 30438 modify = (check && !(check & ENCODE_LEAVE_SRC));
94 15 modify = (check && !(check & ENCODE_LEAVE_SRC));
613 4 30543 if (!SvOK(src))
4 0 if (!SvOK(src))
4 0 if (!SvOK(src))
615 93 30450 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
88 5 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
30444 6 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
616 10 30533 if (SvUTF8(src))
624 0 30543 PUSHMARK(sp);
625 0 30543 XPUSHs(obj);
627 30543 0 if (call_method("renewed",G_SCALAR) == 1) {
629 30543 0 renewed = (bool)POPi;
635 30543 0 FREETMPS; LEAVE;
638 30541 2 dst = sv_2mortal(newSV(slen>0?slen:1)); /* newSV() abhors 0 -- inaba */
642 45 30447 if (modify) {
644 22 23 if (slen) {
648 2 43 SvSETMAGIC(src);
651 6 30486 if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */
3 3 if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */
3 0 if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */
668 21 1313 SvGETMAGIC(src);
0 21 SvGETMAGIC(src);
669 0 1334 SvGETMAGIC(check_sv);
0 0 SvGETMAGIC(check_sv);
670 1330 4 check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
1330 0 check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
671 40 1294 modify = (check && !(check & ENCODE_LEAVE_SRC));
26 14 modify = (check && !(check & ENCODE_LEAVE_SRC));
673 5 1329 if (!SvOK(src))
5 0 if (!SvOK(src))
5 0 if (!SvOK(src))
675 24 1305 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
21 3 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
1287 18 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
677 1328 1 dst = sv_2mortal(newSV(slen>0?slen:1)); /* newSV() abhors 0 -- inaba */
678 590 739 if (SvUTF8(src)) {
680 586 4 if (strict_utf8(aTHX_ obj)) {
691 739 0 U8 *d = (U8 *) SvGROW(dst, 2*slen+1); /* +1 or assertion will botch */
10 729 U8 *d = (U8 *) SvGROW(dst, 2*slen+1); /* +1 or assertion will botch */
692 822 739 while (s < e) {
699 813 9 if (UNI_IS_INVARIANT(uv))
712 11 1304 if (modify) {
714 0 11 if (slen) {
718 2 9 SvSETMAGIC(src);
722 539 776 if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */
15 524 if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */
15 0 if (SvTAINTED(src)) SvTAINTED_on(dst); /* propagate taintedness */
754 807 0 enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
779 0 0 SvGETMAGIC(src);
0 0 SvGETMAGIC(src);
780 0 0 SvGETMAGIC(check_sv);
0 0 SvGETMAGIC(check_sv);
781 0 0 check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
0 0 check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
782 0 0 fallback_cb = SvROK(check_sv) ? check_sv : &PL_sv_undef;
783 0 0 modify = (check && !(check & ENCODE_LEAVE_SRC));
0 0 modify = (check && !(check & ENCODE_LEAVE_SRC));
784 0 0 enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
785 0 0 offset = (STRLEN)SvIV(off);
787 0 0 if (!SvOK(src))
0 0 if (!SvOK(src))
0 0 if (!SvOK(src))
789 0 0 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
0 0 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
0 0 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
790 0 0 if (SvUTF8(src))
814 122 23677 SvGETMAGIC(src);
0 122 SvGETMAGIC(src);
815 0 23799 SvGETMAGIC(check_sv);
0 0 SvGETMAGIC(check_sv);
816 23793 6 check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
23785 8 check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
817 6 23793 fallback_cb = SvROK(check_sv) ? check_sv : &PL_sv_undef;
818 903 22896 modify = (check && !(check & ENCODE_LEAVE_SRC));
845 58 modify = (check && !(check & ENCODE_LEAVE_SRC));
819 23799 0 enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
821 107 23692 if (!SvOK(src))
107 0 if (!SvOK(src))
107 0 if (!SvOK(src))
823 843 22849 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
835 8 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
22733 116 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
824 13 23679 if (SvUTF8(src))
845 123 35156 SvGETMAGIC(src);
0 123 SvGETMAGIC(src);
846 0 35279 SvGETMAGIC(check_sv);
0 0 SvGETMAGIC(check_sv);
847 35270 9 check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
35270 0 check = SvROK(check_sv) ? ENCODE_PERLQQ|ENCODE_LEAVE_SRC : SvIV_nomg(check_sv);
848 9 35270 fallback_cb = SvROK(check_sv) ? check_sv : &PL_sv_undef;
849 17360 17919 modify = (check && !(check & ENCODE_LEAVE_SRC));
17338 22 modify = (check && !(check & ENCODE_LEAVE_SRC));
850 35279 0 enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
852 107 35172 if (!SvOK(src))
107 0 if (!SvOK(src))
107 0 if (!SvOK(src))
854 17336 17836 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
17330 6 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
17719 117 s = modify ? (U8 *)SvPV_force_nomg(src, slen) : (U8 *)SvPV_nomg(src, slen);
855 20 35152 if (!SvUTF8(src))
879 8 0 RETVAL = SvTRUE(sv);
0 8 RETVAL = SvTRUE(sv);
0 0 RETVAL = SvTRUE(sv);
0 8 RETVAL = SvTRUE(sv);
0 0 RETVAL = SvTRUE(sv);
0 0 RETVAL = SvTRUE(sv);
7 1 RETVAL = SvTRUE(sv);
7 0 RETVAL = SvTRUE(sv);
7 0 RETVAL = SvTRUE(sv);
7 0 RETVAL = SvTRUE(sv);
7 0 RETVAL = SvTRUE(sv);
7 0 RETVAL = SvTRUE(sv);
1 0 RETVAL = SvTRUE(sv);
1 0 RETVAL = SvTRUE(sv);
0 1 RETVAL = SvTRUE(sv);
0 0 RETVAL = SvTRUE(sv);
0 0 RETVAL = SvTRUE(sv);
1 0 RETVAL = SvTRUE(sv);
0 0 RETVAL = SvTRUE(sv);
889 110 0 enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
893 0 110 PUSHMARK(sp);
894 0 110 XPUSHs(sv_2mortal(newSVpvn(enc->name[0], strlen(enc->name[0]))));
900 110 0 FREETMPS;
915 0 0 encoding = items == 2 ? ST(1) : Nullsv;
917 0 0 if (encoding)
918 0 0 RETVAL = _encoded_bytes_to_utf8(sv, SvPV_nolen(encoding));
921 0 0 U8* s = (U8*)SvPV(sv, len);
940 0 0 to = items > 1 ? ST(1) : Nullsv;
941 0 0 check = items > 2 ? ST(2) : Nullsv;
943 0 0 if (to) {
944 0 0 RETVAL = _encoded_utf8_to_bytes(sv, SvPV_nolen(to));
947 0 0 U8 *s = (U8*)SvPV(sv, len);
950 0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
0 0 if (SvTRUE(check)) {
961 0 0 while (s < send) {
962 0 0 if (*s < 0x80){
970 0 0 if (!(uv & 0x40)){ goto failure; }
971 0 0 if (!(uv & 0x20)) { ulen = 2; uv &= 0x1f; }
972 0 0 else if (!(uv & 0x10)) { ulen = 3; uv &= 0x0f; }
973 0 0 else if (!(uv & 0x08)) { ulen = 4; uv &= 0x07; }
974 0 0 else if (!(uv & 0x04)) { ulen = 5; uv &= 0x03; }
975 0 0 else if (!(uv & 0x02)) { ulen = 6; uv &= 0x01; }
976 0 0 else if (!(uv & 0x01)) { ulen = 7; uv = 0; }
980 0 0 while (ulen--) {
981 0 0 if ((*s & 0xc0) != 0x80){
987 0 0 if (uv > 256) {
999 0 0 RETVAL = (utf8_to_bytes(s, &len) ? len : 0);
1013 13 641 SvGETMAGIC(sv); /* SvGETMAGIC() can modify SvOK flag */
0 13 SvGETMAGIC(sv); /* SvGETMAGIC() can modify SvOK flag */
1014 5 649 str = SvOK(sv) ? SvPV_nomg(sv, len) : NULL; /* SvPV() can modify SvUTF8 flag */
5 0 str = SvOK(sv) ? SvPV_nomg(sv, len) : NULL; /* SvPV() can modify SvUTF8 flag */
0 5 str = SvOK(sv) ? SvPV_nomg(sv, len) : NULL; /* SvPV() can modify SvUTF8 flag */
639 10 str = SvOK(sv) ? SvPV_nomg(sv, len) : NULL; /* SvPV() can modify SvUTF8 flag */
1016 60 594 if (RETVAL && check && (!str || !is_utf8_string((U8 *)str, len)))
0 60 if (RETVAL && check && (!str || !is_utf8_string((U8 *)str, len)))
0 0 if (RETVAL && check && (!str || !is_utf8_string((U8 *)str, len)))
0 0 if (RETVAL && check && (!str || !is_utf8_string((U8 *)str, len)))
1025 4 4 SvGETMAGIC(sv);
0 4 SvGETMAGIC(sv);
1026 4 4 if (!SvTAINTED(sv) && SvPOKp(sv)) {
3 1 if (!SvTAINTED(sv) && SvPOKp(sv)) {
6 1 if (!SvTAINTED(sv) && SvPOKp(sv)) {
1027 5 1 if (SvTHINKFIRST(sv)) sv_force_normal(sv);
1028 1 5 RETVAL = boolSV(SvUTF8(sv));
1030 2 4 SvSETMAGIC(sv);
1041 4 2 SvGETMAGIC(sv);
0 4 SvGETMAGIC(sv);
1042 4 2 if (!SvTAINTED(sv) && SvPOKp(sv)) {
3 1 if (!SvTAINTED(sv) && SvPOKp(sv)) {
4 1 if (!SvTAINTED(sv) && SvPOKp(sv)) {
1043 3 1 if (SvTHINKFIRST(sv)) sv_force_normal(sv);
1044 3 1 RETVAL = boolSV(SvUTF8(sv));
1046 2 2 SvSETMAGIC(sv);