Fixed use of finalizers for guardians and SMOBs (undoes patches 23-24).
authorLudovic Courtes <ludovic.courtes@laas.fr>
Fri, 26 May 2006 13:50:21 +0000 (13:50 +0000)
committerLudovic Courtès <ludo@gnu.org>
Fri, 5 Sep 2008 07:34:35 +0000 (09:34 +0200)
commit10fb3386dd186244becc493d83c291b9bec2075e
tree3c959fe2d9170e4e05810de4f71930a1d16c6b51
parenta4a141f679fa66b1538148aae8046a9f351b3216
Fixed use of finalizers for guardians and SMOBs (undoes patches 23-24).

* libguile/gc.c (finalizer_trampoline): Removed.
  (scm_gc_register_finalizer): Removed (undoes patches 23 and 24).

* libguile/gc.h (scm_gc_register_finalizer): Removed.

* libguile/guardians.c (finalize_guarded): Undid patch 23.  Added support
  for "proxied finalizers".
  (scm_i_guard): Likewise.

* libguile/smob.c (scm_i_finalize_smob): Adapted to
  `GC_finalization_proc'.

* libguile/smob.h: Include <gc/gc.h>.
  (SCM_NEWSMOB): Use `GC_REGISTER_FINALIZER_NO_ORDER' instead of
  `scm_gc_register_finalizer ()'.
  (SCM_NEWSMOB3): Likewise.
  (scm_i_finalize_smob): Updated.

git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-29
libguile/gc.c
libguile/gc.h
libguile/guardians.c
libguile/smob.c
libguile/smob.h