summaryrefslogtreecommitdiff
path: root/insns.def
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-06-05 07:13:52 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-06-05 07:13:52 +0000
commit203286673d0c66fdcaf6e65acfa267aaebdc3400 (patch)
tree6a0e1b01e98f2be8c868ec3fbca4df3c13c0e6cf /insns.def
parent8ef2289a494a16789cf4add22dbf7ad56595f90a (diff)
* insns.def (invokeblock): check block is created by lambda
or Proc.new. * vm.c (block_proc_is_lambda): added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r--insns.def5
1 files changed, 3 insertions, 2 deletions
diff --git a/insns.def b/insns.def
index ed147a773d..dc8b47b149 100644
--- a/insns.def
+++ b/insns.def
@@ -1238,7 +1238,7 @@ send
id = ip->defined_method_id;
if (ip != ip->local_iseq) {
- /* defined by method_defined() */
+ /* defined by Module#define_method() */
rb_control_frame_t *lcfp = GET_CFP();
while (lcfp->iseq != ip) {
@@ -1345,7 +1345,8 @@ invokeblock
}
INC_SP(-argc);
- argc = th_yield_setup_args(th, iseq, argc, GET_SP(), 0);
+ argc = th_yield_setup_args(th, iseq, argc, GET_SP(),
+ block_proc_is_lambda(block->proc));
INC_SP(argc);
push_frame(th, iseq,