X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hv.h;h=9322377f2d75110bd73d547e3890bcd85892a668;hb=d002ef56a2861d995ba1887bd9f3d10c8c74d149;hp=29977f17bece39df62ad09f2b65284681c6030eb;hpb=3a6fa573ae4863261f94be7a4dad29a13b1652be;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hv.h b/hv.h index 29977f1..9322377 100644 --- a/hv.h +++ b/hv.h @@ -50,8 +50,8 @@ struct mro_alg { }; struct mro_meta { - /* repurposed as a hash holding the different MROs private data. */ - AV *mro_linear_dfs; /* cached dfs @ISA linearization */ + /* a hash holding the different MROs private data. */ + HV *mro_linear_all; /* 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. */ @@ -367,6 +367,9 @@ C. #define HVhek_FREEKEY 0x100 /* Internal flag to say key is malloc()ed. */ #define HVhek_PLACEHOLD 0x200 /* Internal flag to create placeholder. * (may change, but Storable is a core module) */ +#define HVhek_KEYCANONICAL 0x400 /* Internal flag - key is in canonical form. + If the string is UTF-8, it cannot be + converted to bytes. */ #define HVhek_MASK 0xFF /* Which flags enable HvHASKFLAGS? Somewhat a hack on a hack, as