diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-01-30 12:53:22 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-01-30 12:53:22 +0000 |
commit | cae4321112270231e3a4aa8c53c07df194a67dc8 (patch) | |
tree | 4fe3fd4d3be0c86d44a08d7db3994d278dad7eca /vm.c | |
parent | 4b8d9cffdd7d74b858d872840d615c8b82ceaa4f (diff) |
merges r25494 from trunk into ruby_1_9_1.
adds a test case for the change
--
* 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/branches/ruby_1_9_1@26506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -493,7 +493,9 @@ invoke_block_from_c(rb_thread_t *th, const rb_block_t *block, VALUE self, int argc, const VALUE *argv, 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_control_frame_t *cfp; int i, opt_pc, arg_size = iseq->arg_size; |