diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-06-24 18:40:13 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-06-24 18:40:13 +0000 |
commit | efe27762873b0aaab265ff645251bbffe2838554 (patch) | |
tree | d167acd2633820df6a0840a68ae3592bbdb5f0e7 /insns.def | |
parent | 9fc443bf1d665535408ae014c5e741a7e7d72c70 (diff) | |
download | ruby-efe27762873b0aaab265ff645251bbffe2838554.tar.gz ruby-efe27762873b0aaab265ff645251bbffe2838554.tar.xz ruby-efe27762873b0aaab265ff645251bbffe2838554.zip |
* insnhelper.ci (caller_setup_args): add need_block_check option.
* insns.def: ditto.
* yarvcore.h: add GetCoreDataFromValue().
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r-- | insns.def | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -1155,7 +1155,7 @@ send NODE *mn; VALUE recv, klass; rb_block_t *blockptr = 0; - rb_num_t num = caller_setup_args(th, GET_CFP(), op_flag, op_argc, blockiseq, &blockptr); + rb_num_t num = caller_setup_args(th, GET_CFP(), op_flag, op_argc, blockiseq, &blockptr, 1); rb_num_t flag = op_flag; ID id = op_id; @@ -1216,7 +1216,7 @@ invokesuper { rb_block_t *blockptr = 0; VALUE flag = op_flag; - int num = caller_setup_args(th, GET_CFP(), flag, op_argc, blockiseq, &blockptr); + int num = caller_setup_args(th, GET_CFP(), flag, op_argc, blockiseq, &blockptr, 1); rb_iseq_t *iseq = GET_ISEQ(); rb_iseq_t *ip = iseq; VALUE recv, klass; @@ -1292,11 +1292,11 @@ invokeblock iseq = block->iseq; if (BUILTIN_TYPE(iseq) != T_NODE) { - argc = caller_setup_args(th, GET_CFP(), flag, argc, 0, 0); + argc = caller_setup_args(th, GET_CFP(), flag, argc, 0, 0, 0); + CHECK_STACK_OVERFLOW(GET_CFP(), iseq->stack_max); DEC_SP(argc); - argc = vm_yield_setup_args(th, iseq, argc, GET_SP(), block_proc_is_lambda(block->proc)); INC_SP(argc); |