summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Mitchell <davem@iabyn.com>2014-02-28 14:37:13 +0000
committerDavid Mitchell <davem@iabyn.com>2014-02-28 14:37:13 +0000
commit186460900eddc03b1e140296f25d2a6bf5fb9ec9 (patch)
tree6b89794fa7fe3ad9e1566046946492480e86795e
parent111f73b5d79a652d1b6c6e3df3c6cd4c14c17ea7 (diff)
downloadperl-186460900eddc03b1e140296f25d2a6bf5fb9ec9.tar.gz
copy xhv_rand and xhv_last_rand in threads clone
valgrind complains about these fields being uninitialised when cloned into a new thread, because they aren't copied. It's fairly harmless, since these fields are just used to perturb hash key iteration; but for completeness, clone these fields too.
-rw-r--r--sv.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sv.c b/sv.c
index a0e0c5fcf6..b7563b95f3 100644
--- a/sv.c
+++ b/sv.c
@@ -12616,6 +12616,10 @@ S_sv_dup_common(pTHX_ const SV *const sstr, CLONE_PARAMS *const param)
daux->xhv_fill_lazy = saux->xhv_fill_lazy;
daux->xhv_aux_flags = saux->xhv_aux_flags;
+#ifdef PERL_HASH_RANDOMIZE_KEYS
+ daux->xhv_rand = saux->xhv_rand;
+ daux->xhv_last_rand = saux->xhv_last_rand;
+#endif
daux->xhv_riter = saux->xhv_riter;
daux->xhv_eiter = saux->xhv_eiter
? he_dup(saux->xhv_eiter,