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