summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-17 19:27:24 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-17 19:27:24 +0000
commit00e4fd42f36fa23de04cccb9cea3c3e5d14c9ae9 (patch)
tree0012d083c6af5721147cdd7ed7d21d260f38b811 /vm.c
parente2f37fb9c6c9df54b2be78d09de00aa7da0d694f (diff)
* vm.c, vm_insnhelper.c: fix escape process with "braek" and "return"
syntax in "lambda". [ ruby-Bugs-19304 ], [ruby-core:17164] * KNOWNBUGS.rb, bootstraptest/test_proc.rb: add/move solved test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/vm.c b/vm.c
index bb1ba4cb59..83b6ea9bd4 100644
--- a/vm.c
+++ b/vm.c
@@ -525,9 +525,9 @@ vm_invoke_proc(rb_thread_t *th, rb_proc_t *proc, VALUE self,
if (state == TAG_RETURN && proc->is_lambda) {
VALUE err = th->errinfo;
VALUE *escape_dfp = GET_THROWOBJ_CATCH_POINT(err);
- VALUE *cdfp = proc->block.dfp;
- if (escape_dfp == cdfp) {
+ if (escape_dfp == cfp->dfp) {
+ printf("ok\n");
state = 0;
th->errinfo = Qnil;
th->cfp = cfp;