Simplify smob and port marking; set the mark bit in the generic
authorJim Blandy <jimb@red-bean.com>
Thu, 23 Jul 1998 04:47:56 +0000 (04:47 +0000)
committerJim Blandy <jimb@red-bean.com>
Thu, 23 Jul 1998 04:47:56 +0000 (04:47 +0000)
commitdc53f026909e5373e5c864429897d1dc0780cd6c
tree58568db1ad4ee66dd89cfa80b4aa797a29069d2f
parent6f4d9622004098db34124c5f25ef654197e5cfe6
Simplify smob and port marking; set the mark bit in the generic
marking code, and make marker routines only responsible for
turning up outgoing pointers.
* gc.c (scm_gc_mark): Set the mark bit on ports and smobs here,
before calling the marking function.  Don't call the marking
function if it's zero.
* markers.c (scm_mark0): Just return #f.  This function isn't
necessary at all now, but it's harmless to call it.  We'll leave
it in so other folks' code doesn't croak at link time.
(scm_markcdr): Don't call SCM_SETGC8MARK.
* async.c (mark_async): Don't call SCM_SETGC8MARK.
* dynl.c (mark_dynl_obj): Same.
* root.c (mark_root): Same.
* srcprop.c (marksrcprops): Same.
* unif.c (markra): Same.
* variable.c (scm_markvar): Same.
* ports.c (scm_markstream): Same.
(void_port_ptob): Specify zero for our marking function.
* debug.c (debugobjsmob): Same.
* dynwind.c (guardsmob): Same.
* filesys.c (dir_smob): Same.
* fluids.c (fluid_smob): Same.
* fports.c (scm_fptob, scm_pipob): Same.
* mallocs.c (mallocsmob): Same.
* regex-posix.c (regex_t_smob): Same.
* smob.c (freecell, flob, bigob): Same.
* threads.c (thread_smob, mutex_smob, condvar_smob): Same.
* throw.c (jbsmob, lazy_catch_funs): Same.
19 files changed:
libguile/async.c
libguile/debug.c
libguile/dynl.c
libguile/dynwind.c
libguile/filesys.c
libguile/fluids.c
libguile/fports.c
libguile/gc.c
libguile/mallocs.c
libguile/markers.c
libguile/ports.c
libguile/regex-posix.c
libguile/root.c
libguile/smob.c
libguile/srcprop.c
libguile/threads.c
libguile/throw.c
libguile/unif.c
libguile/variable.c