Implement declarative references for dir_data_type
This commit is contained in:
parent
7142328a94
commit
405966e239
Notes:
git
2023-03-17 19:21:14 +00:00
15
dir.c
15
dir.c
@ -465,13 +465,6 @@ struct dir_data {
|
|||||||
rb_encoding *enc;
|
rb_encoding *enc;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
|
||||||
dir_mark(void *ptr)
|
|
||||||
{
|
|
||||||
struct dir_data *dir = ptr;
|
|
||||||
rb_gc_mark(dir->path);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dir_free(void *ptr)
|
dir_free(void *ptr)
|
||||||
{
|
{
|
||||||
@ -487,10 +480,14 @@ dir_memsize(const void *ptr)
|
|||||||
return sizeof(struct dir_data);
|
return sizeof(struct dir_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RUBY_REFERENCES_START(dir_refs)
|
||||||
|
REF_EDGE(dir_data, path),
|
||||||
|
RUBY_REFERENCES_END
|
||||||
|
|
||||||
static const rb_data_type_t dir_data_type = {
|
static const rb_data_type_t dir_data_type = {
|
||||||
"dir",
|
"dir",
|
||||||
{dir_mark, dir_free, dir_memsize,},
|
{REFS_LIST_PTR(dir_refs), dir_free, dir_memsize,},
|
||||||
0, 0, RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FREE_IMMEDIATELY
|
0, NULL, RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_DECL_MARKING
|
||||||
};
|
};
|
||||||
|
|
||||||
static VALUE dir_close(VALUE);
|
static VALUE dir_close(VALUE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user