summaryrefslogtreecommitdiff
path: root/hv.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2008-12-27 11:05:03 +0000
committerNicholas Clark <nick@ccl4.org>2008-12-27 21:12:13 +0000
commit3a6fa573ae4863261f94be7a4dad29a13b1652be (patch)
tree141482451ba5c4b1b2647e078c458ea21e2935e1 /hv.h
parent31b9005d8ff165a414c5e3493027e1656d7e810f (diff)
downloadperl-3a6fa573ae4863261f94be7a4dad29a13b1652be.tar.gz
In struct mro_meta, rename mro_linear_c3 to mro_linear_current, and change it
from AV * to SV *.
Diffstat (limited to 'hv.h')
-rw-r--r--hv.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/hv.h b/hv.h
index e75d75fd18..29977f17be 100644
--- a/hv.h
+++ b/hv.h
@@ -52,8 +52,10 @@ 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 */
+ /* a pointer directly to the current MROs private data. If mro_linear_all
+ is NULL, this owns the SV reference, else it is just a pointer to a
+ value stored in and owned by mro_linear_all. */
+ SV *mro_linear_current;
HV *mro_nextmethod; /* next::method caching */
U32 cache_gen; /* Bumping this invalidates our method cache */
U32 pkg_gen; /* Bumps when local methods/@ISA change */
@@ -63,7 +65,7 @@ struct mro_meta {
#define MRO_GET_PRIVATE_DATA(smeta, which) \
(((smeta)->mro_which && (which) == (smeta)->mro_which) \
- ? MUTABLE_SV((smeta)->mro_linear_c3) \
+ ? (smeta)->mro_linear_current \
: Perl_mro_get_private_data(aTHX_ (smeta), (which)))
/* Subject to change.