Fixed symbols so that interned symbols are only weakly referenced.
authorLudovic Courtes <ludovic.courtes@laas.fr>
Sun, 25 Jun 2006 22:43:47 +0000 (22:43 +0000)
committerLudovic Courtès <ludo@gnu.org>
Wed, 10 Sep 2008 18:28:21 +0000 (20:28 +0200)
commit488b10b5a5cf64ac9bb79a41d3fa663672e7abf9
tree37176ee8ff8f6ef3b15296f486bfdf24f7dbc944
parent639e56a4edaae413a238e62158503978c18545be
Fixed symbols so that interned symbols are only weakly referenced.

* libguile/symbols.c (lookup_interned_symbol): When a deleted weak pair
  is encountered, remove it and update the hashtable's item count.  Also,
  check the hash table threshold and trigger a rehashing if needed.
  (scm_i_c_mem2symbol): Allocate CELL using `scm_weak_car_pair ()' rather
  than `scm_cons ()'.
  (scm_i_mem2symbol): Likewise.
  (scm_symbols_prehistory): Don't invoke `scm_permanent_object ()' for
  SYMBOLS.

git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-44
libguile/symbols.c