add custom marker
This commit is contained in:
parent
db5a4e367b
commit
eb261a293a
3
gc.c
3
gc.c
|
@ -481,6 +481,9 @@ gc_mark_object(pic_state *pic, struct pic_object *obj)
|
|||
while (xh_next(&it)) {
|
||||
gc_mark(pic, xh_val(it.e, pic_value));
|
||||
}
|
||||
if (data->type->mark) {
|
||||
data->type->mark(pic, data->data, gc_mark);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PIC_TT_DICT: {
|
||||
|
|
|
@ -12,6 +12,7 @@ extern "C" {
|
|||
typedef struct {
|
||||
const char *type_name;
|
||||
void (*dtor)(pic_state *, void *);
|
||||
void (*mark)(pic_state *, void *, void (*)(pic_state *, pic_value));
|
||||
} pic_data_type;
|
||||
|
||||
struct pic_data {
|
||||
|
|
Loading…
Reference in New Issue