summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Doligez <damien.doligez-inria.fr>2002-07-23 16:10:00 +0000
committerDamien Doligez <damien.doligez-inria.fr>2002-07-23 16:10:00 +0000
commit794633663d1918a4954ecece421266b6aa282dd8 (patch)
treebc88636f0780c3ea3b941481119619827d33c736
parent6f75d4f557fa30869c198016f1b8159ab009e12f (diff)
downloadocaml-794633663d1918a4954ecece421266b6aa282dd8.tar.gz
bug Weak.Create(_).iter
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5033 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--stdlib/weak.ml10
1 files changed, 9 insertions, 1 deletions
diff --git a/stdlib/weak.ml b/stdlib/weak.ml
index e22e18ce3e..666a83c8dc 100644
--- a/stdlib/weak.ml
+++ b/stdlib/weak.ml
@@ -116,7 +116,15 @@ module Make (H : Hashtbl.HashedType) : (S with type data = H.t) = struct
Array.fold_right (fold_bucket 0) t.table init
;;
- let iter f t = fold (fun d () -> ()) t ();;
+ let iter f t =
+ let rec iter_bucket i b =
+ if i >= length b then () else
+ match get b i with
+ | Some v -> f v; iter_bucket (i+1) b
+ | None -> iter_bucket (i+1) b
+ in
+ Array.iter (iter_bucket 0) t.table
+ ;;
let count t =
let rec count_bucket i b accu =