diff options
-rw-r--r-- | dump.c | 5 | ||||
-rw-r--r-- | ext/Devel-Peek/t/Peek.t | 6 | ||||
-rw-r--r-- | hv.c | 1 | ||||
-rw-r--r-- | hv.h | 1 | ||||
-rw-r--r-- | sv.c | 1 |
5 files changed, 14 insertions, 0 deletions
@@ -1883,6 +1883,11 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo } break; case SVt_PVHV: + if (SvOOK(sv)) { + struct xpvhv_aux *const aux = HvAUX(sv); + Perl_dump_indent(aTHX_ level, file, " AUX_FLAGS = %"UVuf"\n", + (UV)aux->xhv_aux_flags); + } Perl_dump_indent(aTHX_ level, file, " ARRAY = 0x%"UVxf, PTR2UV(HvARRAY(sv))); if (HvARRAY(sv) && HvUSEDKEYS(sv)) { /* Show distribution of HEs in the ARRAY */ diff --git a/ext/Devel-Peek/t/Peek.t b/ext/Devel-Peek/t/Peek.t index 9fb1f016b4..2cfd8a5205 100644 --- a/ext/Devel-Peek/t/Peek.t +++ b/ext/Devel-Peek/t/Peek.t @@ -821,6 +821,7 @@ do_test('ENAME on a stash', FLAGS = \\(OOK,SHAREKEYS\\) IV = 1 # $] < 5.009 NV = $FLOAT # $] < 5.009 + AUX_FLAGS = 0 # $] > 5.019008 ARRAY = $ADDR KEYS = 0 FILL = 0 \(cached = 0\) @@ -845,6 +846,7 @@ do_test('ENAMEs on a stash', FLAGS = \\(OOK,SHAREKEYS\\) IV = 1 # $] < 5.009 NV = $FLOAT # $] < 5.009 + AUX_FLAGS = 0 # $] > 5.019008 ARRAY = $ADDR KEYS = 0 FILL = 0 \(cached = 0\) @@ -871,6 +873,7 @@ do_test('ENAMEs on a stash with no NAME', FLAGS = \\(OOK,OVERLOAD,SHAREKEYS\\) # $] >=5.017 IV = 1 # $] < 5.009 NV = $FLOAT # $] < 5.009 + AUX_FLAGS = 0 # $] > 5.019008 ARRAY = $ADDR KEYS = 0 FILL = 0 \(cached = 0\) @@ -923,6 +926,7 @@ do_test('small hash after keys', FLAGS = \\(PADMY,OOK,SHAREKEYS\\) IV = 1 # $] < 5.009 NV = $FLOAT # $] < 5.009 + AUX_FLAGS = 0 # $] > 5.019008 ARRAY = $ADDR \\(0:[67],.*\\) hash quality = [0-9.]+% KEYS = 2 @@ -954,6 +958,7 @@ do_test('small hash after keys and scalar', FLAGS = \\(PADMY,OOK,SHAREKEYS\\) IV = 1 # $] < 5.009 NV = $FLOAT # $] < 5.009 + AUX_FLAGS = 0 # $] > 5.019008 ARRAY = $ADDR \\(0:[67],.*\\) hash quality = [0-9.]+% KEYS = 2 @@ -986,6 +991,7 @@ do_test('large hash', FLAGS = \\(PADMY,OOK,SHAREKEYS\\) IV = 1 # $] < 5.009 NV = $FLOAT # $] < 5.009 + AUX_FLAGS = 0 # $] > 5.019008 ARRAY = $ADDR \\(0:\d+,.*\\) hash quality = \d+\\.\d+% KEYS = 1000 @@ -1979,6 +1979,7 @@ S_hv_auxinit(pTHX_ HV *hv) { iter->xhv_name_count = 0; iter->xhv_backreferences = 0; iter->xhv_mro_meta = NULL; + iter->xhv_aux_flags = 0; return iter; } @@ -119,6 +119,7 @@ struct xpvhv_aux { used to detect each() after insert for warnings */ #endif U32 xhv_fill_lazy; + U32 xhv_aux_flags; /* assorted extra flags */ }; /* hash structure: */ @@ -12615,6 +12615,7 @@ S_sv_dup_common(pTHX_ const SV *const sstr, CLONE_PARAMS *const param) daux->xhv_name_count = saux->xhv_name_count; daux->xhv_fill_lazy = saux->xhv_fill_lazy; + daux->xhv_aux_flags = saux->xhv_aux_flags; daux->xhv_riter = saux->xhv_riter; daux->xhv_eiter = saux->xhv_eiter ? he_dup(saux->xhv_eiter, |