1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* 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
This commit is contained in:
nobu 2008-02-19 11:49:51 +00:00
parent fec2c12c29
commit e4021207fb
2 changed files with 7 additions and 3 deletions

View file

@ -1,3 +1,7 @@
Tue Feb 19 20:49:49 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* eval.c (rb_raise_jump): moved adjustment for control frame.
Tue Feb 19 18:34:32 2008 Tanaka Akira <akr@fsij.org> Tue Feb 19 18:34:32 2008 Tanaka Akira <akr@fsij.org>
* gc.c (STACK_LENGTH) [SPARC] : 0x80 offset removed. [ruby-dev:33857] * gc.c (STACK_LENGTH) [SPARC] : 0x80 offset removed. [ruby-dev:33857]

6
eval.c
View file

@ -775,9 +775,7 @@ rb_f_raise(int argc, VALUE *argv)
argv = &err; argv = &err;
} }
} }
err = rb_make_exception(argc, argv); rb_raise_jump(rb_make_exception(argc, argv));
GET_THREAD()->cfp++;
rb_raise_jump(err);
return Qnil; /* not reached */ return Qnil; /* not reached */
} }
@ -830,6 +828,8 @@ rb_make_exception(int argc, VALUE *argv)
void void
rb_raise_jump(VALUE mesg) rb_raise_jump(VALUE mesg)
{ {
rb_thread_t *th = GET_THREAD();
th->cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(th->cfp);
/* TODO: fix me */ /* TODO: fix me */
rb_longjmp(TAG_RAISE, mesg); rb_longjmp(TAG_RAISE, mesg);
} }