summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Zhu <[email protected]>2025-08-06 11:09:51 -0400
committerPeter Zhu <[email protected]>2025-08-07 09:27:22 -0400
commit24d0b458cd6ccde1e052c1db15af120def349693 (patch)
tree5026c4559c08af0b5b0786e1dc9dd7fbc4d2c9db
parentfccd96cc6c3cc9f500dc87ae9be65aaa212b02fa (diff)
Make Random write-barrier protectedHEADmaster
-rw-r--r--random.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/random.c b/random.c
index 1611c3db97..85d72057cd 100644
--- a/random.c
+++ b/random.c
@@ -263,7 +263,7 @@ const rb_data_type_t rb_random_data_type = {
random_free,
random_memsize,
},
- 0, 0, RUBY_TYPED_FREE_IMMEDIATELY
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED
};
#define random_mt_mark rb_random_mark
@@ -284,7 +284,7 @@ static const rb_data_type_t random_mt_type = {
},
&rb_random_data_type,
(void *)&random_mt_if,
- RUBY_TYPED_FREE_IMMEDIATELY
+ RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED
};
static rb_random_t *
@@ -422,10 +422,10 @@ random_init(int argc, VALUE *argv, VALUE obj)
argc = rb_check_arity(argc, 0, 1);
rb_check_frozen(obj);
if (argc == 0) {
- rnd->seed = rand_init_default(rng, rnd);
+ RB_OBJ_WRITE(obj, &rnd->seed, rand_init_default(rng, rnd));
}
else {
- rnd->seed = rand_init(rng, rnd, rb_to_int(argv[0]));
+ RB_OBJ_WRITE(obj, &rnd->seed, rand_init(rng, rnd, rb_to_int(argv[0])));
}
return obj;
}