28 lines
544 B
C
28 lines
544 B
C
|
|
#include "linked_list/struct.h"
|
|
|
|
struct gc
|
|
{
|
|
const struct gc_flags* flags; // don't free.
|
|
|
|
struct linked_list internally_referenced, externally_referenced;
|
|
struct linked_list grey, white;
|
|
struct linked_list reaped;
|
|
|
|
size_t bytes_currently_allocated;
|
|
|
|
size_t bytes_of_last_garbage_collection;
|
|
|
|
struct {
|
|
struct block_info {
|
|
struct value* start;
|
|
|
|
size_t cap;
|
|
}* data;
|
|
|
|
size_t n, cap;
|
|
} blocks;
|
|
|
|
size_t next_block_cap;
|
|
};
|
|
|