Fixed the SMOB mark procedure so that it handles free-list objects.
authorLudovic Courtes <ludovic.courtes@laas.fr>
Sun, 28 May 2006 20:05:05 +0000 (20:05 +0000)
committerLudovic Courtès <ludo@gnu.org>
Fri, 5 Sep 2008 07:34:57 +0000 (09:34 +0200)
commit194c0a3e402f20c51f5bf7041d8b9edce913b071
tree5f442a54e921487f3f39e4bbe9e5ab836e5538a7
parent10fb3386dd186244becc493d83c291b9bec2075e
Fixed the SMOB mark procedure so that it handles free-list objects.

* libguile/smob.c (smob_mark): Check the 7-bit type tag and ignore those
  whose type tag is not that of a SMOB in order to cleanly handle
  free-list objects (this fixes a bug which showed up on SPARC64).
  Also, don't mark & push ADDR itself.
  (scm_gc_mark): Moved the definition and undefinition of
  `CURRENT_MARK_PTR' and `CURRENT_MARK_LIMIT' here.

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