From e4021207fb0add1133b0c3e7f3b2acc2bc8d877c Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 19 Feb 2008 11:49:51 +0000 Subject: * eval.c (rb_raise_jump): moved adjustment for control frame. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- eval.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index e7d9c1f45e..db760116df 100644 --- a/eval.c +++ b/eval.c @@ -775,9 +775,7 @@ rb_f_raise(int argc, VALUE *argv) argv = &err; } } - err = rb_make_exception(argc, argv); - GET_THREAD()->cfp++; - rb_raise_jump(err); + rb_raise_jump(rb_make_exception(argc, argv)); return Qnil; /* not reached */ } @@ -830,6 +828,8 @@ rb_make_exception(int argc, VALUE *argv) void rb_raise_jump(VALUE mesg) { + rb_thread_t *th = GET_THREAD(); + th->cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(th->cfp); /* TODO: fix me */ rb_longjmp(TAG_RAISE, mesg); } -- cgit v1.2.3