* vm_insnhelper.c (vm_invoke_block): vm_caller_setup_args() can skip

when splat flag is not set.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37229 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2012-10-16 20:30:17 +00:00
Родитель db1e99cdad
Коммит 9182dab459
2 изменённых файлов: 8 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,8 @@
Wed Oct 17 05:05:07 2012 Koichi Sasada <ko1@atdot.net>
* vm_insnhelper.c (vm_invoke_block): vm_caller_setup_args() can skip
when splat flag is not set.
Wed Oct 17 01:53:47 2012 Koichi Sasada <ko1@atdot.net>
* vm_insnhelper.c (vm_getivar, vm_setivar): support index inline cache

Просмотреть файл

@ -2032,7 +2032,9 @@ vm_invoke_block(rb_thread_t *th, rb_control_frame_t *reg_cfp, rb_call_info_t *ci
}
iseq = block->iseq;
vm_caller_setup_args(th, GET_CFP(), ci);
if (UNLIKELY(ci->flag & VM_CALL_ARGS_SPLAT)) {
vm_caller_setup_args(th, GET_CFP(), ci);
}
if (BUILTIN_TYPE(iseq) != T_NODE) {
int opt_pc;