diff options
author | Nicholas Clark <nick@ccl4.org> | 2003-10-25 22:32:40 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2003-10-25 22:32:40 +0000 |
commit | fdcd69b65ac55392f341cae1cd6046f4815fa698 (patch) | |
tree | f2f8b9ddaf76ff4907683d173cd9521e46ebd918 /hv.h | |
parent | 4fe720563e634d5d5483aa91d0bf2dd8e9dc96b3 (diff) | |
download | perl-fdcd69b65ac55392f341cae1cd6046f4815fa698.tar.gz |
Return 21533 (with modifications) having found the problem
p4raw-id: //depot/perl@21535
Diffstat (limited to 'hv.h')
-rw-r--r-- | hv.h | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -212,6 +212,7 @@ C<SV*>. * is utf8 (including 8 bit keys that were entered as utf8, and need upgrading * when retrieved during iteration. It may still be set when there are no longer * any utf8 keys. + * See HVhek_ENABLEHVKFLAGS for the trigger. */ #define HvHASKFLAGS(hv) (SvFLAGS(hv) & SVphv_HASKFLAGS) #define HvHASKFLAGS_on(hv) (SvFLAGS(hv) |= SVphv_HASKFLAGS) @@ -283,6 +284,16 @@ C<SV*>. * (may change, but Storable is a core module) */ #define HVhek_MASK 0xFF +/* Which flags enable HvHASKFLAGS? Somewhat a hack on a hack, as + HVhek_REHASH is only needed because the rehash flag has to be duplicated + into all keys as hv_iternext has no access to the hash flags. At this + point Storable's tests get upset, because sometimes hashes are "keyed" + and sometimes not, depending on the order of data insertion, and whether + it triggered rehashing. So currently HVhek_REHAS is exempt. +*/ + +#define HVhek_ENABLEHVKFLAGS (HVhek_MASK - HVhek_REHASH) + #define HEK_UTF8(hek) (HEK_FLAGS(hek) & HVhek_UTF8) #define HEK_UTF8_on(hek) (HEK_FLAGS(hek) |= HVhek_UTF8) #define HEK_UTF8_off(hek) (HEK_FLAGS(hek) &= ~HVhek_UTF8) |