Cyclone Scheme  0.28.0

◆ gc_collector_mark_gray

#define gc_collector_mark_gray (   parent,
  gobj 
)
Value:
if (is_object_type(gobj) && (mark(gobj) == gc_color_clear || mark(gobj) == gc_color_purple)) { \
mark_stack = vpbuffer_add(mark_stack, &mark_stack_len, mark_stack_i++, gobj); \
}

"Color" objects gray by adding them to the mark stack for further processing.

Parameters
parentParent of object, used for debugging only
objObject to mark

Note that stack objects are always colored red during creation, so they should never be added to the mark stack. Which would be bad because it could lead to stack corruption.

vpbuffer_add
void ** vpbuffer_add(void **buf, int *len, int i, void *obj)
Definition: runtime.c:6877
is_object_type
#define is_object_type(x)
Definition: types.h:644
mark
#define mark(x)
Definition: types.h:274