summaryrefslogtreecommitdiffstats
path: root/insns.def
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-06-24 18:40:13 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-06-24 18:40:13 +0000
commitefe27762873b0aaab265ff645251bbffe2838554 (patch)
treed167acd2633820df6a0840a68ae3592bbdb5f0e7 /insns.def
parent9fc443bf1d665535408ae014c5e741a7e7d72c70 (diff)
downloadruby-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.def8
1 files changed, 4 insertions, 4 deletions
diff --git a/insns.def b/insns.def
index a13dff658..7487b6c2b 100644
--- a/insns.def
+++ b/insns.def
@@ -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);