diff options
author | Tom Kelly <ctk21@cl.cam.ac.uk> | 2020-04-20 16:24:23 +0100 |
---|---|---|
committer | Tom Kelly <ctk21@cl.cam.ac.uk> | 2020-04-20 16:24:23 +0100 |
commit | 3bf5f1b9096cc102e48805b7bc8b07509505245a (patch) | |
tree | 24f66fa436d2364a042b4f7867ac249074d5e744 /stdlib/weak.ml | |
parent | 0d3b171c85f5caa320d237248988ce112787486b (diff) | |
parent | 36d299b4aaf7f2d317fbfa148d7f94e720c80730 (diff) | |
download | ocaml-3bf5f1b9096cc102e48805b7bc8b07509505245a.tar.gz |
Merge commit '36d299b4aaf7f2d317fbfa148d7f94e720c80730' into parallel_minor_gc_4_09
Diffstat (limited to 'stdlib/weak.ml')
-rw-r--r-- | stdlib/weak.ml | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/stdlib/weak.ml b/stdlib/weak.ml index 267f2bba9f..cce9a3a3ed 100644 --- a/stdlib/weak.ml +++ b/stdlib/weak.ml @@ -204,8 +204,10 @@ module Make (H : Hashtbl.HashedType) : (S with type data = H.t) = struct t.table.(t.rover) <- emptybucket; t.hashes.(t.rover) <- [| |]; end else begin - Obj.truncate (Obj.repr bucket) (prev_len + additional_values); - Obj.truncate (Obj.repr hbucket) prev_len; + let newbucket = weak_create prev_len in + blit bucket 0 newbucket 0 prev_len; + t.table.(t.rover) <- newbucket; + t.hashes.(t.rover) <- Array.sub hbucket 0 prev_len end; if len > t.limit && prev_len <= t.limit then t.oversize <- t.oversize - 1; end; |