summaryrefslogtreecommitdiff
path: root/proto.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2008-12-26 18:26:53 +0000
committerDavid Mitchell <davem@iabyn.com>2009-03-30 16:40:53 +0100
commit7589a8571d9b15eb4be5ca38caf14b3995431387 (patch)
tree7574e3f121c0780b7e01a53247d301bfea9bc4c2 /proto.h
parent1330b908a0a176c486bf3077990b8be64ea49307 (diff)
downloadperl-7589a8571d9b15eb4be5ca38caf14b3995431387.tar.gz
Add Perl_mro_register() to register Method Resolution Orders,
Perl_mro_get_from_name() to retrieve MROs by name, and PL_registered_mros to store them in. Abolish the static array of mros, and instead register the dfs and c3 MRO structures. (cherry picked from commit a3e6e81e81213c31f0612471c427044481a95287)
Diffstat (limited to 'proto.h')
-rw-r--r--proto.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/proto.h b/proto.h
index 521aa5c8f9..bff12adcbc 100644
--- a/proto.h
+++ b/proto.h
@@ -6577,6 +6577,16 @@ PERL_CALLCONV SV* Perl_mro_set_private_data(pTHX_ struct mro_meta *const smeta,
#define PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA \
assert(smeta); assert(which); assert(data)
+PERL_CALLCONV const struct mro_alg * Perl_mro_get_from_name(pTHX_ SV *name)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MRO_GET_FROM_NAME \
+ assert(name)
+
+PERL_CALLCONV void Perl_mro_register(pTHX_ const struct mro_alg *mro)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_MRO_REGISTER \
+ assert(mro)
+
PERL_CALLCONV struct mro_meta* Perl_mro_meta_init(pTHX_ HV* stash)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_MRO_META_INIT \