summaryrefslogtreecommitdiff
path: root/proto.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2008-12-26 16:38:58 +0000
committerNicholas Clark <nick@ccl4.org>2008-12-27 21:12:12 +0000
commitfa60396f123333e92849ecaecffb9252458d6678 (patch)
treee6d2e126ebe2b4d2d36b6f04080fc42bab9e7f65 /proto.h
parent4e7245b5373225aafe95c40cba1590f590d1c782 (diff)
downloadperl-fa60396f123333e92849ecaecffb9252458d6678.tar.gz
Repurpose struct mro_meta to allow it to store cached linear ISA for arbitary
method resolution orders. mro_linear_dfs becomes a hash holding the different MROs' private data. mro_linear_c3 becomes a shortcut pointer to the current MRO's private data.
Diffstat (limited to 'proto.h')
-rw-r--r--proto.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/proto.h b/proto.h
index 62ddce4ff0..f10ce56a1a 100644
--- a/proto.h
+++ b/proto.h
@@ -6554,6 +6554,19 @@ PERL_CALLCONV void Perl_emulate_cop_io(pTHX_ const COP *const c, SV *const sv)
PERL_CALLCONV REGEXP * Perl_get_re_arg(pTHX_ SV *sv);
+PERL_CALLCONV SV* Perl_mro_get_private_data(pTHX_ struct mro_meta *const smeta, const struct mro_alg *const which)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2);
+#define PERL_ARGS_ASSERT_MRO_GET_PRIVATE_DATA \
+ assert(smeta); assert(which)
+
+PERL_CALLCONV SV* Perl_mro_set_private_data(pTHX_ struct mro_meta *const smeta, const struct mro_alg *const which, SV *const data)
+ __attribute__nonnull__(pTHX_1)
+ __attribute__nonnull__(pTHX_2)
+ __attribute__nonnull__(pTHX_3);
+#define PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA \
+ assert(smeta); assert(which); assert(data)
+
PERL_CALLCONV struct mro_meta* Perl_mro_meta_init(pTHX_ HV* stash)
__attribute__nonnull__(pTHX_1);
#define PERL_ARGS_ASSERT_MRO_META_INIT \