From 8e6f911137d160ab8dbd47617bd1fd8fc7e44b86 Mon Sep 17 00:00:00 2001 From: wlott <wlott> Date: Mon, 28 Jan 1991 09:21:55 +0000 Subject: [PATCH] Fixed a bug in which scavenge was only testing to see if the object was in the correct range to be a forwarding pointer. Therefore, fixnums that just happened to be represented by a value in that range looked like forwarding pointers. Scavenge should have been checking to see if the object really was a pointer before checking the range. --- ldb/gc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ldb/gc.c b/ldb/gc.c index d8a4da8e1..8283789bf 100644 --- a/ldb/gc.c +++ b/ldb/gc.c @@ -1,7 +1,7 @@ /* * Stop and Copy GC based on Cheney's algorithm. * - * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/gc.c,v 1.23 1990/12/18 23:26:27 wlott Exp $ + * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/gc.c,v 1.24 1991/01/28 09:21:55 wlott Exp $ * * Written by Christopher Hoover. */ @@ -333,7 +333,7 @@ long nwords; lispobj first_word; first_word = *((lispobj *)PTR(object)); - if (new_space_p(first_word)) { + if (Pointerp(first_word) && new_space_p(first_word)) { /* Yep, there be a forwarding pointer. */ *start = first_word; words_scavenged = 1; -- GitLab