Explictly export Perl_mro_meta_init() so that HvMROMETA() can become part of the
authorNicholas Clark <nick@ccl4.org>
Fri, 26 Dec 2008 21:31:47 +0000 (21:31 +0000)
committerDavid Mitchell <davem@iabyn.com>
Mon, 30 Mar 2009 15:41:12 +0000 (16:41 +0100)
public API and be used outside the core. However, leave Perl_mro_meta_init() as
a private implementation detail.

(cherry picked from commit c60bad7b8870cf2745c93e1b99cbb504daa780b2)

embed.fnc
embed.h
global.sym
hv.h

index 039333d..3f6f7d7 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -2154,8 +2154,8 @@ Aop       |SV*    |mro_set_private_data|NN struct mro_meta *const smeta \
                                     |NN SV *const data
 Aop    |const struct mro_alg *|mro_get_from_name|NN SV *name
 Aop    |void   |mro_register   |NN const struct mro_alg *mro
-: Used in HvMROMETA() in gv.c, pp_hot.c, universal.c
-p      |struct mro_meta*       |mro_meta_init  |NN HV* stash
+: Used in HvMROMETA(), which is public.
+Xpo    |struct mro_meta*       |mro_meta_init  |NN HV* stash
 #if defined(USE_ITHREADS)
 : Only used in sv.c
 p      |struct mro_meta*       |mro_meta_dup   |NN struct mro_meta* smeta|NN CLONE_PARAMS* param
diff --git a/embed.h b/embed.h
index 8ca5a86..51b9e76 100644 (file)
--- a/embed.h
+++ b/embed.h
 #endif
 #if !defined(HAS_SIGNBIT)
 #endif
-#ifdef PERL_CORE
-#define mro_meta_init          Perl_mro_meta_init
-#endif
 #if defined(USE_ITHREADS)
 #ifdef PERL_CORE
 #define mro_meta_dup           Perl_mro_meta_dup
 #if defined(PERL_CORE) || defined(PERL_EXT)
 #endif
 #ifdef PERL_CORE
-#define mro_meta_init(a)       Perl_mro_meta_init(aTHX_ a)
 #endif
 #if defined(USE_ITHREADS)
 #ifdef PERL_CORE
index 63acc01..4d87c59 100644 (file)
@@ -773,6 +773,7 @@ Perl_mro_get_private_data
 Perl_mro_set_private_data
 Perl_mro_get_from_name
 Perl_mro_register
+Perl_mro_meta_init
 Perl_mro_get_linear_isa
 Perl_mro_method_changed_in
 Perl_sys_init
diff --git a/hv.h b/hv.h
index fad99be..912152c 100644 (file)
--- a/hv.h
+++ b/hv.h
@@ -284,7 +284,7 @@ C<SV*>.
    caller's responsibility */
 #define HvMROMETA(hv) (HvAUX(hv)->xhv_mro_meta \
                        ? HvAUX(hv)->xhv_mro_meta \
-                       : mro_meta_init(hv))
+                       : Perl_mro_meta_init(aTHX_ hv))
 
 /* FIXME - all of these should use a UTF8 aware API, which should also involve
    getting the length. */