This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
S_isa_lookup() no longer recurses (as of Brandon's MRO changes), so we
authorNicholas Clark <nick@ccl4.org>
Thu, 11 Sep 2008 21:12:51 +0000 (21:12 +0000)
committerNicholas Clark <nick@ccl4.org>
Thu, 11 Sep 2008 21:12:51 +0000 (21:12 +0000)
don't need to pass in name_stash as a parameter.

p4raw-id: //depot/perl@34349

embed.fnc
embed.h
proto.h
universal.c

index f08dfef..368857c 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -1660,7 +1660,7 @@ s |void   |printbuf       |NN const char *const fmt|NN const char *const s
 #endif
 
 #if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
-s      |bool|isa_lookup        |NULLOK HV *stash|NN const char * const name|NULLOK const HV * const name_stash
+s      |bool|isa_lookup        |NULLOK HV *stash|NN const char * const name
 #endif
 
 #if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
diff --git a/embed.h b/embed.h
index 9caec1d..01f750c 100644 (file)
--- a/embed.h
+++ b/embed.h
 #endif
 #if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
-#define isa_lookup(a,b,c)      S_isa_lookup(aTHX_ a,b,c)
+#define isa_lookup(a,b)                S_isa_lookup(aTHX_ a,b)
 #endif
 #endif
 #if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
diff --git a/proto.h b/proto.h
index da79be1..cd295a0 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -5851,7 +5851,7 @@ STATIC void       S_printbuf(pTHX_ const char *const fmt, const char *const s)
 #endif
 
 #if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
-STATIC bool    S_isa_lookup(pTHX_ HV *stash, const char * const name, const HV * const name_stash)
+STATIC bool    S_isa_lookup(pTHX_ HV *stash, const char * const name)
                        __attribute__nonnull__(pTHX_2);
 #define PERL_ARGS_ASSERT_ISA_LOOKUP    \
        assert(name)
index 19fb608..c6de960 100644 (file)
  */
 
 STATIC bool
-S_isa_lookup(pTHX_ HV *stash, const char * const name, const HV* const name_stash)
+S_isa_lookup(pTHX_ HV *stash, const char * const name)
 {
     dVAR;
     AV* stash_linear_isa;
     SV** svp;
     const char *hvname;
     I32 items;
+    const HV *const name_stash = gv_stashpv(name, 0);
 
     PERL_ARGS_ASSERT_ISA_LOOKUP;
 
@@ -116,8 +117,7 @@ Perl_sv_derived_from(pTHX_ SV *sv, const char *const name)
     }
 
     if (stash) {
-       HV * const name_stash = gv_stashpv(name, 0);
-       return isa_lookup(stash, name, name_stash);
+       return isa_lookup(stash, name);
     }
     else
        return FALSE;