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;
|
||||
};
|
||||
|
||||
static void
|
||||
dir_mark(void *ptr)
|
||||
{
|
||||
struct dir_data *dir = ptr;
|
||||
rb_gc_mark(dir->path);
|
||||
}
|
||||
|
||||
static void
|
||||
dir_free(void *ptr)
|
||||
{
|
||||
@ -487,10 +480,14 @@ dir_memsize(const void *ptr)
|
||||
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 = {
|
||||
"dir",
|
||||
{dir_mark, dir_free, dir_memsize,},
|
||||
0, 0, RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FREE_IMMEDIATELY
|
||||
{REFS_LIST_PTR(dir_refs), dir_free, dir_memsize,},
|
||||
0, NULL, RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_DECL_MARKING
|
||||
};
|
||||
|
||||
static VALUE dir_close(VALUE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user