summaryrefslogtreecommitdiff
path: root/intrpvar.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2008-12-26 18:26:53 +0000
committerNicholas Clark <nick@ccl4.org>2008-12-27 21:12:12 +0000
commita3e6e81e81213c31f0612471c427044481a95287 (patch)
treeee301f51042968614e037f30ee494f770446607d /intrpvar.h
parent123892d916359369839f3896f283189be71dc32c (diff)
downloadperl-a3e6e81e81213c31f0612471c427044481a95287.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.
Diffstat (limited to 'intrpvar.h')
-rw-r--r--intrpvar.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/intrpvar.h b/intrpvar.h
index 956b7dec93..4fa3c0d9a3 100644
--- a/intrpvar.h
+++ b/intrpvar.h
@@ -681,6 +681,12 @@ PERLVARI(Idestroyhook, destroyable_proc_t, MEMBER_TO_FPTR(Perl_sv_destroyable))
PERLVARI(Isv_serial, U32, 0) /* SV serial number, used in sv.c */
#endif
+/* Register of known Method Resolution Orders.
+ What this actually points to is an implementation detail (it may change to
+ a structure incorporating a reference count - use mro_get_from_name to
+ retrieve a C<struct mro_alg *> */
+PERLVAR(Iregistered_mros, HV *)
+
/* If you are adding a U8 or U16, check to see if there are 'Space' comments
* above on where there are gaps which currently will be structure padding. */