This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Stop calling get-magic twice for lvalue pos($utf8)
[perl5.git] / mg.c
diff --git a/mg.c b/mg.c
index 089f9c6..09f9b60 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -2166,7 +2166,7 @@ Perl_magic_setpos(pTHX_ SV *sv, MAGIC *mg)
     pos = SvIV(sv);
 
     if (DO_UTF8(lsv)) {
-       ulen = sv_len_utf8(lsv);
+       ulen = sv_len_utf8_nomg(lsv);
        if (ulen)
            len = ulen;
     }
@@ -2180,9 +2180,7 @@ Perl_magic_setpos(pTHX_ SV *sv, MAGIC *mg)
        pos = len;
 
     if (ulen) {
-       I32 p = pos;
-       sv_pos_u2b(lsv, &p, 0);
-       pos = p;
+       pos = sv_pos_u2b_flags(lsv, pos, 0, 0);
     }
 
     found->mg_len = pos;