Implement Write Barriers on proc_entry

This commit is contained in:
Peter Zhu 2023-11-22 11:11:08 -05:00
Родитель 705a3c69d7
Коммит 40e67cb20e
1 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -311,7 +311,7 @@ static const rb_data_type_t proc_entry_data_type = {
proc_entry_memsize,
proc_entry_compact,
},
0, 0, RUBY_TYPED_FREE_IMMEDIATELY
0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED
};
static struct proc_entry *
@ -1875,10 +1875,10 @@ lazy_add_method(VALUE obj, int argc, VALUE *argv, VALUE args, VALUE memo,
VALUE entry_obj = TypedData_Make_Struct(rb_cObject, struct proc_entry,
&proc_entry_data_type, entry);
if (rb_block_given_p()) {
entry->proc = rb_block_proc();
RB_OBJ_WRITE(entry_obj, &entry->proc, rb_block_proc());
}
entry->fn = fn;
entry->memo = args;
RB_OBJ_WRITE(entry_obj, &entry->memo, args);
lazy_set_args(entry_obj, memo);