From c192d5558a30d6ce09da998a5a5036e5f1d38034 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Thu, 7 Mar 2013 10:12:47 +0100 Subject: [PATCH] fixed bug in FlatHashtbl.remove --- flatHashtbl.ml | 2 +- tests/test_flatHashtbl.ml | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/flatHashtbl.ml b/flatHashtbl.ml index 9efef391..04218489 100644 --- a/flatHashtbl.ml +++ b/flatHashtbl.ml @@ -182,7 +182,7 @@ module Make(H : Hashtbl.HashedType) = let j = addr h n i in match buckets.(j) with | Used (key', _) when H.equal key key' -> - buckets.(i) <- Deleted; + buckets.(j) <- Deleted; t.size <- t.size - 1 (* remove slot *) | Deleted | Used _ -> probe h n (i+1) (* search further *) diff --git a/tests/test_flatHashtbl.ml b/tests/test_flatHashtbl.ml index 451ca728..e1d167ce 100644 --- a/tests/test_flatHashtbl.ml +++ b/tests/test_flatHashtbl.ml @@ -47,9 +47,8 @@ let test_eq () = let h = IHashtbl.create 3 in IHashtbl.replace h 1 "odd"; IHashtbl.replace h 2 "even"; - OUnit.assert_equal (IHashtbl.find h 3) "odd"; - OUnit.assert_equal (IHashtbl.find h 51) "odd"; - OUnit.assert_equal (IHashtbl.find h 42) "even"; + OUnit.assert_equal (IHashtbl.find h 1) "odd"; + OUnit.assert_equal (IHashtbl.find h 2) "even"; () let test_copy () =