summaryrefslogtreecommitdiff
path: root/hv.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 /hv.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 'hv.h')
-rw-r--r--hv.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/hv.h b/hv.h
index f92ce9e9fd..66fb6f2d8e 100644
--- a/hv.h
+++ b/hv.h
@@ -46,7 +46,9 @@ struct shared_he {
struct mro_alg;
struct mro_meta {
+ /* repurposed as a hash holding the different MROs private data. */
AV *mro_linear_dfs; /* cached dfs @ISA linearization */
+ /* repurposed as a pointer directly to the current MROs private data. */
AV *mro_linear_c3; /* cached c3 @ISA linearization */
HV *mro_nextmethod; /* next::method caching */
U32 cache_gen; /* Bumping this invalidates our method cache */