diff options
author | Nicholas Clark <nick@ccl4.org> | 2008-12-27 00:20:35 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2008-12-27 21:12:12 +0000 |
commit | b2685f0c86badfc357584d8dbfb2bf17057ea226 (patch) | |
tree | 69b0e3ace3542be24afd551380e2e0ecffc1500a /hv.h | |
parent | c60bad7b8870cf2745c93e1b99cbb504daa780b2 (diff) | |
download | perl-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.h | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -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. */ |