Change 27767 by [EMAIL PROTECTED] on 2006/04/11 18:06:30

        Within Perl_newSVhek, inline most of newSVpvn_share(), because
        share_hek_hek() is far more efficient than sharepvn().

Affected files ...

... //depot/perl/sv.c#1232 edit

Differences ...

==== //depot/perl/sv.c#1232 (text) ====
Index: perl/sv.c
--- perl/sv.c#1231~27766~       2006-04-11 09:17:13.000000000 -0700
+++ perl/sv.c   2006-04-11 11:06:30.000000000 -0700
@@ -6964,9 +6964,23 @@
            return sv;
        }
        /* This will be overwhelminly the most common case.  */
-       return newSVpvn_share(HEK_KEY(hek),
-                             (HEK_UTF8(hek) ? -HEK_LEN(hek) : HEK_LEN(hek)),
-                             HEK_HASH(hek));
+       {
+           /* Inline most of newSVpvn_share(), because share_hek_hek() is far
+              more efficient than sharepvn().  */
+           SV *sv;
+
+           new_SV(sv);
+           sv_upgrade(sv, SVt_PV);
+           SvPV_set(sv, (char *)HEK_KEY(share_hek_hek(hek)));
+           SvCUR_set(sv, HEK_LEN(hek));
+           SvLEN_set(sv, 0);
+           SvREADONLY_on(sv);
+           SvFAKE_on(sv);
+           SvPOK_on(sv);
+           if (HEK_UTF8(hek))
+               SvUTF8_on(sv);
+           return sv;
+       }
     }
 }
 
End of Patch.

Reply via email to