summaryrefslogtreecommitdiff
path: root/enumerator.c
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2023-11-22 10:45:50 -0500
committerPeter Zhu <peter@peterzhu.ca>2023-11-27 08:29:35 -0500
commitd7165d88ec715f4c73b6fcbbbd6b185145359757 (patch)
tree7403e44eb3256d201df8d2ab998f803ca1111b6b /enumerator.c
parent1c3088117a6b22b6aa07fb8c9c28028851786c1b (diff)
Implement Write Barriers on Enumerator::Yielder
Diffstat (limited to 'enumerator.c')
-rw-r--r--enumerator.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/enumerator.c b/enumerator.c
index 94f8490ca4..602735119b 100644
--- a/enumerator.c
+++ b/enumerator.c
@@ -1302,7 +1302,7 @@ static const rb_data_type_t yielder_data_type = {
NULL,
yielder_compact,
},
- 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_EMBEDDABLE
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_EMBEDDABLE
};
static struct yielder *
@@ -1341,7 +1341,7 @@ yielder_init(VALUE obj, VALUE proc)
rb_raise(rb_eArgError, "unallocated yielder");
}
- ptr->proc = proc;
+ RB_OBJ_WRITE(obj, &ptr->proc, proc);
return obj;
}