diff options
author | Nicholas Clark <nick@ccl4.org> | 2008-12-27 11:05:03 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2008-12-27 21:12:13 +0000 |
commit | 3a6fa573ae4863261f94be7a4dad29a13b1652be (patch) | |
tree | 141482451ba5c4b1b2647e078c458ea21e2935e1 /hv.h | |
parent | 31b9005d8ff165a414c5e3493027e1656d7e810f (diff) | |
download | perl-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.h | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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. |