From 00e4fd42f36fa23de04cccb9cea3c3e5d14c9ae9 Mon Sep 17 00:00:00 2001 From: ko1 Date: Tue, 17 Jun 2008 19:27:24 +0000 Subject: * 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 --- vm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'vm.c') 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; -- cgit v1.2.3