From 72c4fc72835ea7ea247b11b140c0f3133086123b Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 6 May 2016 06:29:56 +0000 Subject: 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 --- random.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/random.c b/random.c index 65db49d677..72b0f46b0f 100644 --- a/random.c +++ b/random.c @@ -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; } -- cgit v1.2.3