From d9c6f02fae856b74c356bdff35aac61a6a8de1c4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Tue, 16 May 2000 01:37:24 -0700
Subject: [PATCH] bugfix for gc callback

Rev: src/gc.h:1.41
---
 src/gc.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/gc.h b/src/gc.h
index c697e993f6..b594b9d67d 100644
--- a/src/gc.h
+++ b/src/gc.h
@@ -1,5 +1,5 @@
 /*
- * $Id: gc.h,v 1.40 2000/05/04 03:14:31 hubbe Exp $
+ * $Id: gc.h,v 1.41 2000/05/16 08:37:24 hubbe Exp $
  */
 #ifndef GC_H
 #define GC_H
@@ -21,7 +21,7 @@ extern struct callback_list evaluator_callbacks;
 extern void *gc_svalue_location;
 #endif
 
-#define ADD_GC_CALLBACK() gc_evaluator_callback=add_to_callback(&evaluator_callbacks,(callback_func)do_gc,0,0)
+#define ADD_GC_CALLBACK() do { if(!gc_evaluator_callback)  gc_evaluator_callback=add_to_callback(&evaluator_callbacks,(callback_func)do_gc,0,0); }while(0)
 
 #define LOW_GC_ALLOC(OBJ) do {						\
  extern int d_flag;							\
@@ -38,12 +38,12 @@ extern void *gc_svalue_location;
 #ifdef ALWAYS_GC
 #define GC_ALLOC(OBJ) do{						\
   LOW_GC_ALLOC(OBJ);							\
-  if(!gc_evaluator_callback) ADD_GC_CALLBACK();				\
+  ADD_GC_CALLBACK();				\
 } while(0)
 #else
 #define GC_ALLOC(OBJ)  do{						\
   LOW_GC_ALLOC(OBJ);							\
-  if(num_allocs == alloc_threshold && !gc_evaluator_callback)		\
+  if(num_allocs == alloc_threshold)		\
     ADD_GC_CALLBACK();							\
 } while(0)
 #endif
-- 
GitLab