summaryrefslogtreecommitdiff
path: root/stdlib/weak.ml
diff options
context:
space:
mode:
authorTom Kelly <ctk21@cl.cam.ac.uk>2020-04-20 16:24:23 +0100
committerTom Kelly <ctk21@cl.cam.ac.uk>2020-04-20 16:24:23 +0100
commit3bf5f1b9096cc102e48805b7bc8b07509505245a (patch)
tree24f66fa436d2364a042b4f7867ac249074d5e744 /stdlib/weak.ml
parent0d3b171c85f5caa320d237248988ce112787486b (diff)
parent36d299b4aaf7f2d317fbfa148d7f94e720c80730 (diff)
downloadocaml-3bf5f1b9096cc102e48805b7bc8b07509505245a.tar.gz
Merge commit '36d299b4aaf7f2d317fbfa148d7f94e720c80730' into parallel_minor_gc_4_09
Diffstat (limited to 'stdlib/weak.ml')
-rw-r--r--stdlib/weak.ml6
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;