void CollectorMarker_removeIfNeededAndInsertAfter_(CollectorMarker *self, CollectorMarker *other) { if (self->prev) { CollectorMarker_remove(self); } CollectorMarker_insertAfter_(self, other); }
void Collector_makeFree_(Collector *self, CollectorMarker *v) { #ifdef COLLECTOR_RECYCLE_FREED CollectorMarker_removeAndInsertAfter_((CollectorMarker *)v, self->freed); #else CollectorMarker_remove(v); CollectorMarker_free(v); #endif }
void CollectorMarker_removeAndInsertAfter_(CollectorMarker *self, CollectorMarker *other) { CollectorMarker_remove(self); CollectorMarker_insertAfter_(self, other); }