* vm.c (invoke_block_from_c): return Qnil when its iseq is

SPECIAL CONST. [ruby-core:26335]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2009-10-26 20:58:25 +00:00
Родитель 2215293a66
Коммит 1fe610b588
2 изменённых файлов: 8 добавлений и 1 удалений

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

@ -1,3 +1,8 @@
Tue Oct 27 05:56:39 2009 NARUSE, Yui <naruse@ruby-lang.org>
* vm.c (invoke_block_from_c): return Qnil when its iseq is
SPECIAL CONST. [ruby-core:26335]
Tue Oct 27 05:11:49 2009 NARUSE, Yui <naruse@ruby-lang.org> Tue Oct 27 05:11:49 2009 NARUSE, Yui <naruse@ruby-lang.org>
* vm_exec.c (DECL_SC_REG): check defined(__asm__) before use it. * vm_exec.c (DECL_SC_REG): check defined(__asm__) before use it.

4
vm.c
Просмотреть файл

@ -523,7 +523,9 @@ invoke_block_from_c(rb_thread_t *th, const rb_block_t *block,
VALUE self, int argc, const VALUE *argv, VALUE self, int argc, const VALUE *argv,
const rb_block_t *blockptr, const NODE *cref) const rb_block_t *blockptr, const NODE *cref)
{ {
if (BUILTIN_TYPE(block->iseq) != T_NODE) { if (SPECIAL_CONST_P(block->iseq))
return Qnil;
else if (BUILTIN_TYPE(block->iseq) != T_NODE) {
const rb_iseq_t *iseq = block->iseq; const rb_iseq_t *iseq = block->iseq;
const rb_control_frame_t *cfp; const rb_control_frame_t *cfp;
int i, opt_pc, arg_size = iseq->arg_size; int i, opt_pc, arg_size = iseq->arg_size;