In lrecord.h :
extern int gc_in_progress;
#ifdef USE_INDEXED_LRECORD_IMPLEMENTATION
# define MARKED_RECORD_P(obj) (gc_in_progress && XRECORD_LHEADER (obj)->mark)
#else
# define MARKED_RECORD_P(obj) (gc_in_progress && \
XRECORD_LHEADER (obj)->implementation->finalizer == \
this_marks_a_marked_record)
#endif
Especially in the USE_INDEXED_LRECORD_IMPLEMENTATION, what is this
gc_in_progress test for? The last stage of gc clears all marks (or
the next gc would not work right), and anyway one should not test for
marking outside of gc, no?
OG.
Show replies by date