* 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