summaryrefslogtreecommitdiff
path: root/hv.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2008-12-27 00:20:35 +0000
committerNicholas Clark <nick@ccl4.org>2008-12-27 21:12:12 +0000
commitb2685f0c86badfc357584d8dbfb2bf17057ea226 (patch)
tree69b0e3ace3542be24afd551380e2e0ecffc1500a /hv.h
parentc60bad7b8870cf2745c93e1b99cbb504daa780b2 (diff)
downloadperl-b2685f0c86badfc357584d8dbfb2bf17057ea226.tar.gz
Proper pluggable Method Resolution Orders. 'c3' is now implemented outside the
core, in ext/mro/mro.xs. Also move mro::_nextcan() to mro.xs. It needs direct access to S_mro_get_linear_isa_c3(), and nothing on CPAN calls it, except via methods defined in mro.pm. Hence all users already require mro;
Diffstat (limited to 'hv.h')
-rw-r--r--hv.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/hv.h b/hv.h
index e120dd4274..e75d75fd18 100644
--- a/hv.h
+++ b/hv.h
@@ -41,9 +41,13 @@ struct shared_he {
Use the funcs in mro.c
*/
-
-/* structure may change, so not public yet */
-struct mro_alg;
+struct mro_alg {
+ AV *(*resolve)(pTHX_ HV* stash, U32 level);
+ const char *name;
+ U16 length;
+ U16 kflags; /* For the hash API - set HVhek_UTF8 if name is UTF-8 */
+ U32 hash; /* or 0 */
+};
struct mro_meta {
/* repurposed as a hash holding the different MROs private data. */