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