gv.c:gv_try_downgrade: Use hv_fetchhek
authorFather Chrysostomos <sprout@cpan.org>
Tue, 5 Nov 2013 23:52:59 +0000 (15:52 -0800)
committerFather Chrysostomos <sprout@cpan.org>
Wed, 6 Nov 2013 13:56:04 +0000 (05:56 -0800)
Unlike hv_fetch, this also passes the precomputed hash, saving
hv_common from having to recalculate it.

gv.c

diff --git a/gv.c b/gv.c
index 08aaf9a..136bada 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -3351,8 +3351,7 @@ Perl_gv_try_downgrade(pTHX_ GV *gv)
            CvCONST(cv) && !CvMETHOD(cv) && !CvLVALUE(cv) && !CvUNIQUE(cv) &&
            !CvNODEBUG(cv) && !CvCLONE(cv) && !CvCLONED(cv) && !CvANON(cv) &&
            (namehek = GvNAME_HEK(gv)) &&
-           (gvp = hv_fetch(stash, HEK_KEY(namehek),
-                       HEK_LEN(namehek)*(HEK_UTF8(namehek) ? -1 : 1), 0)) &&
+           (gvp = hv_fetchhek(stash, namehek, 0)) &&
            *gvp == (SV*)gv) {
        SV *value = SvREFCNT_inc(CvXSUBANY(cv).any_ptr);
        const bool imported = !!GvIMPORTED_CV(gv);