1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-18 01:32:24 +02:00

Add gc_edge data structure

Less casting in user programs, and it's a step on the way to evacuation
in whippet.
This commit is contained in:
Andy Wingo 2022-06-04 21:54:49 +02:00
parent 808d365f4b
commit 52166fe286
9 changed files with 81 additions and 48 deletions

View file

@ -77,14 +77,14 @@ static inline size_t double_array_size(DoubleArray *array) {
}
static inline void
visit_node_fields(Node *node,
void (*visit)(void **loc, void *visit_data),
void (*visit)(struct gc_edge edge, void *visit_data),
void *visit_data) {
visit((void**)&node->left, visit_data);
visit((void**)&node->right, visit_data);
visit(object_field(&node->left), visit_data);
visit(object_field(&node->right), visit_data);
}
static inline void
visit_double_array_fields(DoubleArray *obj,
void (*visit)(void **loc, void *visit_data),
void (*visit)(struct gc_edge edge, void *visit_data),
void *visit_data) {
}