diff --git a/src/gc.h b/src/gc.h index c697e993f6a72f17389be4e789ebc05de876bfbf..b594b9d67d9873cd9d32f0423b9fab5fc6706ab9 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