Added support for SMOB custom mark procedures.
authorLudovic Courtes <ludovic.courtes@laas.fr>
Mon, 22 May 2006 19:12:12 +0000 (19:12 +0000)
committerLudovic Courtès <ludo@gnu.org>
Fri, 5 Sep 2008 07:33:20 +0000 (09:33 +0200)
commit378f262561cb381e8b3cff3faac1157605422015
tree1dbfc664ccdcade9d54e1878246caf22e947359c
parent6bad09ba9f203f5aaf8024ab198995d2470fb688
Added support for SMOB custom mark procedures.

* libguile/gc.c (scm_gc_mark): Removed.
  (scm_gc_mark_dependencies): Removed.
  (scm_mark_locations): Removed.

* libguile/gc.h (scm_gc_mark_dependencies): Removed.
  (scm_mark_locations): Removed.

* libguile/inline.h (scm_cell): Use `GC_MALLOC ()' instead of `GC_malloc ()'.

* libguile/smob.c (smob_freelist): New.
  (smob_gc_kind): New.
  (smob_mark): New.
  (scm_gc_mark): New.
  (scm_i_new_smob_with_mark_proc): New.
  (scm_smob_prehistory): Initialize `smob_freelist' and `smob_gc_kind'.

* libguile/smob.h (scm_i_new_smob_with_mark_proc): New declaration.
  (SCM_NEWSMOB): Use it if a mark procedure is available.
  (SCM_NEWSMOB2): Likewise.
  (SCM_NEWSMOB3): Likewise.

* libguile/threads.c (guilify_self_1): Initialize the
  `current_mark_stack_*' fields.

* libguile/threads.h (scm_i_thread)[current_mark_stack_ptr]: New field.
  [current_mark_stack_limit]: New field.

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