diff options
author | Andy Wingo <wingo@pobox.com> | 2011-10-24 10:52:55 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2011-10-24 12:54:14 +0200 |
commit | a141db8604ecca8a4f4c210cd680b41e337c689a (patch) | |
tree | 6d7fec7621586e8c569ec2451e2a4c93f674e5a5 /libguile.h | |
parent | c4e83f74c2f518d8c25959c6e7bb2b36e7058d01 (diff) |
remove weak pairs, rewrite weak vectors
* libguile/weak-vector.c:
* libguile/weak-vector.h: Renamed from weaks.[ch]. Remove weak pairs.
They were not safe to access with `car' and `cdr'. Remove weak alist
vectors, as we have weak tables and sets. Reimplement weak vectors,
moving the implementation here.
* libguile/vectors.c:
* libguile/vectors.h: Remove the extra header word. Use
scm_c_weak_vector_ref / scm_c_weak_vector_set_x to access weak
vectors.
* libguile/snarf.h: Remove the extra header word in vectors.
* libguile/threads.c (do_thread_exit, fat_mutex_lock, fat_mutex_unlock):
Instead of weak pairs, store thread-owned mutexes in a list of
one-element weak vectors.
* libguile/guardians.c (finalize_guarded): Similarly, store object
guardians in a list of one-element weak vectors.
* libguile/modules.c (scm_module_reverse_lookup): We no longer need to
handle the case of weak references.
* libguile/print.c (iprin1): Use the standard vector accessor to print
vectors.
* libguile.h:
* libguile/Makefile.am:
* libguile/gc-malloc.c:
* libguile/gc.c:
* libguile/goops.c:
* libguile/init.c:
* libguile/objprop.c:
* libguile/struct.c: Update includes.
* module/ice-9/weak-vector.scm: Load weak vector definitions using an
extension instead of %init-weaks-builtins.
* test-suite/tests/weaks.test: Use the make-...-hash-table names instead
of the old alist vector names.
Diffstat (limited to 'libguile.h')
-rw-r--r-- | libguile.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libguile.h b/libguile.h index 2c6840250..7ac98a507 100644 --- a/libguile.h +++ b/libguile.h @@ -117,7 +117,7 @@ extern "C" { #include "libguile/vports.h" #include "libguile/weak-set.h" #include "libguile/weak-table.h" -#include "libguile/weaks.h" +#include "libguile/weak-vector.h" #include "libguile/backtrace.h" #include "libguile/debug.h" #include "libguile/stacks.h" |