Skip to content

Commit 9bbc732

Browse files
Mark Closure, Function and Handle as write barrier protected (#129)
They don't have a mark function, so they don't need any change. Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
1 parent 153c09c commit 9bbc732

3 files changed

Lines changed: 21 additions & 8 deletions

File tree

‎ext/fiddle/closure.c‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,13 @@ closure_memsize(const void * ptr)
5454
}
5555

5656
constrb_data_type_tclosure_data_type= {
57-
"fiddle/closure",
58-
{0, dealloc, closure_memsize,},
59-
0, 0,
60-
RUBY_TYPED_FREE_IMMEDIATELY,
57+
.wrap_struct_name="fiddle/closure",
58+
.function= {
59+
.dmark=0,
60+
.dfree=dealloc,
61+
.dsize=closure_memsize
62+
},
63+
.flags=RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED,
6164
};
6265

6366
structcallback_args {

‎ext/fiddle/function.c‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,13 @@ function_memsize(const void *p)
5353
}
5454

5555
constrb_data_type_tfunction_data_type= {
56-
"fiddle/function",
57-
{0, deallocate, function_memsize,},
56+
.wrap_struct_name="fiddle/function",
57+
.function= {
58+
.dmark=0,
59+
.dfree=deallocate,
60+
.dsize=function_memsize
61+
},
62+
.flags=RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED,
5863
};
5964

6065
staticVALUE

‎ext/fiddle/handle.c‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,13 @@ fiddle_handle_memsize(const void *ptr)
5050
}
5151

5252
staticconstrb_data_type_tfiddle_handle_data_type= {
53-
"fiddle/handle",
54-
{0, fiddle_handle_free, fiddle_handle_memsize,},
53+
.wrap_struct_name="fiddle/handle",
54+
.function= {
55+
.dmark=0,
56+
.dfree=fiddle_handle_free,
57+
.dsize=fiddle_handle_memsize
58+
},
59+
.flags=RUBY_TYPED_WB_PROTECTED,
5560
};
5661

5762
/*

0 commit comments

Comments
 (0)