269 |
if (!SCM_NULLP (to_rehash)) |
if (!SCM_NULLP (to_rehash)) |
270 |
{ |
{ |
271 |
SCM h = to_rehash, last; |
SCM h = to_rehash, last; |
272 |
|
/* important to clear to_rehash here so that we don't get stuck |
273 |
|
in an infinite loop if scm_i_rehash causes GC */ |
274 |
|
to_rehash = SCM_EOL; |
275 |
do |
do |
276 |
{ |
{ |
277 |
scm_i_rehash (h, |
scm_i_rehash (h, |
285 |
/* move tables back to weak_hashtables */ |
/* move tables back to weak_hashtables */ |
286 |
SCM_SET_HASHTABLE_NEXT (last, weak_hashtables); |
SCM_SET_HASHTABLE_NEXT (last, weak_hashtables); |
287 |
weak_hashtables = to_rehash; |
weak_hashtables = to_rehash; |
|
to_rehash = SCM_EOL; |
|
288 |
} |
} |
289 |
return 0; |
return 0; |
290 |
} |
} |