1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

random.c: default seed mark

* random.c (Init_Random_default): since seed is marked by
  random_mark, no needs to mark itself as a global variable.
  allocate Random instance before making the seed value, to get
  rid of the potential risk of GC during the allocation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54927 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-05-06 06:29:56 +00:00
parent 80c9b6646e
commit 72c4fc7283

View file

@ -1544,13 +1544,10 @@ Init_Random_default(void)
{
rb_random_t *r = &default_rand;
struct MT *mt = &r->mt;
VALUE v;
VALUE v = TypedData_Wrap_Struct(rb_cRandom, &random_data_type, r);
r->seed = init_randomseed(mt);
rb_global_variable(&r->seed);
v = TypedData_Wrap_Struct(rb_cRandom, &random_data_type, r);
rb_gc_register_mark_object(v);
r->seed = init_randomseed(mt);
return v;
}