From: Nicholas Clark Date: Thu, 2 Jun 2005 09:24:17 +0000 (+0000) Subject: Avoid duplicate calls to PAD_COMPNAME_OURSTASH, which is an expensive X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=0cdfe552874fb0fdffd17424aa25a0c7a49d88e1;p=p5sagit%2Fp5-mst-13.2.git Avoid duplicate calls to PAD_COMPNAME_OURSTASH, which is an expensive macro. p4raw-id: //depot/perl@24672 --- diff --git a/toke.c b/toke.c index cb17be9..8c13ba2 100644 --- a/toke.c +++ b/toke.c @@ -5538,8 +5538,9 @@ S_pending_ident(pTHX) /* might be an "our" variable" */ if (PAD_COMPNAME_FLAGS(tmp) & SVpad_OUR) { /* build ops for a bareword */ - SV *sym = newSVpvn(HvNAME_get(PAD_COMPNAME_OURSTASH(tmp)), - HvNAMELEN_get(PAD_COMPNAME_OURSTASH(tmp))); + HV *stash = PAD_COMPNAME_OURSTASH(tmp); + HEK *stashname = HvNAME_HEK(stash); + SV *sym = newSVpvn(HEK_KEY(stashname), HEK_LEN(stashname)); sv_catpvn(sym, "::", 2); sv_catpv(sym, PL_tokenbuf+1); yylval.opval = (OP*)newSVOP(OP_CONST, 0, sym); @@ -9739,9 +9740,10 @@ S_scan_inputsymbol(pTHX_ char *start) */ if ((tmp = pad_findmy(d)) != NOT_IN_PAD) { if (PAD_COMPNAME_FLAGS(tmp) & SVpad_OUR) { - SV *sym = sv_2mortal( - newSVpvn(HvNAME_get(PAD_COMPNAME_OURSTASH(tmp)), - HvNAMELEN_get(PAD_COMPNAME_OURSTASH(tmp)))); + HV *stash = PAD_COMPNAME_OURSTASH(tmp); + HEK *stashname = HvNAME_HEK(stash); + SV *sym = sv_2mortal(newSVpvn(HEK_KEY(stashname), + HEK_LEN(stashname))); sv_catpvn(sym, "::", 2); sv_catpv(sym, d+1); d = SvPVX(sym);