From 31b05a0f9f5158b8f1340a8e92be562574510792 Mon Sep 17 00:00:00 2001 From: Florian Ragwitz Date: Tue, 30 Nov 2010 10:24:26 +0100 Subject: [PATCH] Eliminate strlen and strEQ usage in gv_fetchmethod This commit brought to you with the aid of the campaign for elimination of strlen(). --- gv.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gv.c b/gv.c index 4775bcc..9cfc70d 100644 --- a/gv.c +++ b/gv.c @@ -722,11 +722,12 @@ Perl_gv_fetchmethod_flags(pTHX_ HV *stash, const char *name, U32 flags) * a filehandle. If IO:File has not been loaded, try to * require it first instead of croaking */ const char *stash_name = HvNAME_get(stash); - const char *io_file = "IO/File.pm"; - if (stash_name && strEQ(stash_name,"IO::File") - && ! hv_exists(GvHVn(PL_incgv),io_file, strlen(io_file)) + if (stash_name && memEQs(stash_name, HvNAMELEN_get(stash), "IO::File") + && !Perl_hv_common(aTHX_ GvHVn(PL_incgv), NULL, + STR_WITH_LEN("IO/File.pm"), 0, + HV_FETCH_ISEXISTS, NULL, 0) ) { - require_pv(io_file); + require_pv("IO/File.pm"); gv = gv_fetchmeth(stash, name, nend - name, 0); if (gv) return gv; -- 2.7.4