Check if object is free in add_freelist instead of marking in gc_marks. Move cgc_unprocessed code into cgc_handle_unprocessed.