From c31861cd105a0416aa48207c9c40ab1c80f49bb6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Fri, 21 Apr 2000 19:25:10 -0700
Subject: [PATCH] removed some bogus debug: external objects may contain
 references to objects marked for destruction after pike code (destroy) has
 been called.

Rev: src/object.c:1.119
---
 src/object.c | 25 +++++++------------------
 1 file changed, 7 insertions(+), 18 deletions(-)

diff --git a/src/object.c b/src/object.c
index fbca5a1e32..12fbce252a 100644
--- a/src/object.c
+++ b/src/object.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: object.c,v 1.118 2000/04/21 23:07:10 hubbe Exp $");
+RCSID("$Id: object.c,v 1.119 2000/04/22 02:25:10 hubbe Exp $");
 #include "object.h"
 #include "dynamic_buffer.h"
 #include "interpret.h"
@@ -1222,6 +1222,12 @@ void gc_mark_all_objects(void)
     if(gc_is_referenced(o))
       gc_mark_object_as_referenced(o);
 
+#ifdef PIKE_DEBUG
+  if(d_flag)
+    for(o=objects_to_destruct;o;o=o->next)
+      debug_malloc_touch(o);
+#endif
+
 }
 
 int gc_destroy_all_unreferenced_objects(void)
@@ -1270,23 +1276,6 @@ int gc_free_all_unreferenced_objects(void)
   int n = 0;
   struct object *o,*next;
 
-#ifdef PIKE_DEBUG
-  if(d_flag)
-  {
-    for(o=first_object;o;o=next)
-    {
-      if(!gc_do_free(o))
-      {
-	add_ref(o);
-	gc_check_object(o);
-	SET_NEXT_AND_FREE(o,free_object);
-      }else{
-	next=o->next;
-      }
-    }
-  }
-#endif
-
   for(o=first_object;o;o=next)
   {
     if(gc_do_free(o))
-- 
GitLab