* weaks.c (scm_scan_weak_vectors): move the calculation of the
authorMichael Livshin <mlivshin@bigfoot.com>
Fri, 29 Dec 2000 22:18:06 +0000 (22:18 +0000)
committerMichael Livshin <mlivshin@bigfoot.com>
Fri, 29 Dec 2000 22:18:06 +0000 (22:18 +0000)
commitd9dcd93362ef2956d9d11a46024173c74e197f3c
treef97d66c4dcccb7d77ea455b7406517bf1911bc4f
parent174663302558e2eda063dfe185beef860b39deb2
* weaks.c (scm_scan_weak_vectors): move the calculation of the
`weak_keys' and `weak_values' flags out of the inner loop.

* guardians.c: (greedily_guarded_prop): deleted.
(greedily_guarded_whash): new variable.  a doubly-weak hash table
used to keep the "greedily hashed" object property.  the previous
implementation (via primitive object properties) was incorrect due
to its only-the-key-is-weak semantics.
(scm_guard, get_one_zombie, scm_init_guardians): use/init
`greedily_guarded_whash'.
libguile/ChangeLog
libguile/guardians.c
libguile/weaks.c