From c41e262667faa0edea31e47d133276c1dc72ef06 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 22 Jun 2017 01:20:22 +0900 Subject: Add write barrier to protect singleton class from GC; fix #3717 --- src/kernel.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/kernel.c') diff --git a/src/kernel.c b/src/kernel.c index 20f52922d..d7f18b677 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -318,6 +318,7 @@ mrb_obj_clone(mrb_state *mrb, mrb_value self) } p = (struct RObject*)mrb_obj_alloc(mrb, mrb_type(self), mrb_obj_class(mrb, self)); p->c = mrb_singleton_class_clone(mrb, self); + mrb_field_write_barrier(mrb, (struct RBasic*)p, (struct RBasic*)p->c); clone = mrb_obj_value(p); init_copy(mrb, clone, self); -- cgit v1.2.3