ruby-changes:48449
From: ko1 <ko1@a...>
Date: Mon, 30 Oct 2017 00:39:00 +0900 (JST)
Subject: [ruby-changes:48449] ko1:r60563 (trunk): call `rb_vm_stack_to_heap()`
ko1 2017-10-30 00:38:55 +0900 (Mon, 30 Oct 2017) New Revision: 60563 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=60563 Log: call `rb_vm_stack_to_heap()` * safe.c (rb_set_safe_level): call `rb_vm_stack_to_heap()` to set block parameter. * safe.c (rb_set_safe_level): use `GET_EC()`. * safe.c (safe_setter): ditto. Modified files: trunk/safe.c Index: safe.c =================================================================== --- safe.c (revision 60562) +++ safe.c (revision 60563) @@ -46,13 +46,16 @@ rb_set_safe_level_force(int safe) https://github.com/ruby/ruby/blob/trunk/safe.c#L46 void rb_set_safe_level(int level) { - rb_thread_t *th = GET_THREAD(); + rb_execution_context_t *ec = GET_EC(); - if (level > th->ec->safe_level) { + if (level > ec->safe_level) { if (level > SAFE_LEVEL_MAX) { rb_raise(rb_eArgError, "$SAFE=2 to 4 are obsolete"); } - th->ec->safe_level = level; + /* block parameters */ + rb_vm_stack_to_heap(ec); + + ec->safe_level = level; } } @@ -65,8 +68,8 @@ safe_getter(void) https://github.com/ruby/ruby/blob/trunk/safe.c#L68 static void safe_setter(VALUE val) { - rb_thread_t *th = GET_THREAD(); - int current_level = th->ec->safe_level; + rb_execution_context_t *ec = GET_EC(); + int current_level = ec->safe_level; int level = NUM2INT(val); if (level == current_level) { @@ -82,9 +85,9 @@ safe_setter(VALUE val) https://github.com/ruby/ruby/blob/trunk/safe.c#L85 } /* block parameters */ - rb_vm_stack_to_heap(th->ec); + rb_vm_stack_to_heap(ec); - th->ec->safe_level = level; + ec->safe_level = level; } void -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/