diff --git a/include/cyclone/types.h b/include/cyclone/types.h index 1e2f2703..75cae0a5 100644 --- a/include/cyclone/types.h +++ b/include/cyclone/types.h @@ -146,6 +146,8 @@ void gc_thread_data_free(gc_thread_data *thd); // Prototypes for mutator/collector: void gc_mut_update(gc_thread_data *thd, object old_obj, object value); void gc_mut_cooperate(gc_thread_data *thd); +void gc_stack_mark_refs_gray(gc_thread_data *thd, object obj); +void gc_stack_mark_gray(gc_thread_data *thd, object obj); void gc_mark_gray(gc_thread_data *thd, object obj); void gc_collector_trace(); void gc_mark_black(object obj); @@ -342,7 +344,7 @@ typedef cons_type *list; #define cddddr(x) (cdr(cdr(cdr(cdr(x))))) #define make_cons(n,a,d) \ -cons_type n; n.tag = cons_tag; n.cons_car = a; n.cons_cdr = d; +cons_type n; n.hdr.mark = gc_color_red; n.tag = cons_tag; n.cons_car = a; n.cons_cdr = d; /* Closure types */