* libguile/weak-table.c (rob_from_rich): Leave the loop also if 'key' or
'value' is zero. Reset 'hash'.
---
libguile/weak-table.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/libguile/weak-table.c b/libguile/weak-table.c
index 5c4b3d30a..24fff4e73 100644
--- a/libguile/weak-table.c
+++ b/libguile/weak-table.c
@@ -292,7 +292,11 @@ rob_from_rich (scm_t_weak_table *table, unsigned long k)
empty = k;
do
empty = (empty + 1) % size;
- while (table->entries[empty].hash);
+ while (table->entries[empty].hash
+ && table->entries[empty].key
+ && table->entries[empty].value);
+
+ table->entries[empty].hash = 0;
do
{
--
2.14.2