mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
Make Random write-barrier protected
This commit is contained in:
parent
fccd96cc6c
commit
24d0b458cd
1 changed files with 4 additions and 4 deletions
8
random.c
8
random.c
|
@ -263,7 +263,7 @@ const rb_data_type_t rb_random_data_type = {
|
||||||
random_free,
|
random_free,
|
||||||
random_memsize,
|
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
|
#define random_mt_mark rb_random_mark
|
||||||
|
@ -284,7 +284,7 @@ static const rb_data_type_t random_mt_type = {
|
||||||
},
|
},
|
||||||
&rb_random_data_type,
|
&rb_random_data_type,
|
||||||
(void *)&random_mt_if,
|
(void *)&random_mt_if,
|
||||||
RUBY_TYPED_FREE_IMMEDIATELY
|
RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED
|
||||||
};
|
};
|
||||||
|
|
||||||
static rb_random_t *
|
static rb_random_t *
|
||||||
|
@ -422,10 +422,10 @@ random_init(int argc, VALUE *argv, VALUE obj)
|
||||||
argc = rb_check_arity(argc, 0, 1);
|
argc = rb_check_arity(argc, 0, 1);
|
||||||
rb_check_frozen(obj);
|
rb_check_frozen(obj);
|
||||||
if (argc == 0) {
|
if (argc == 0) {
|
||||||
rnd->seed = rand_init_default(rng, rnd);
|
RB_OBJ_WRITE(obj, &rnd->seed, rand_init_default(rng, rnd));
|
||||||
}
|
}
|
||||||
else {
|
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;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue