* eval.c (rb_catch): backout.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
6eb98c5ebe
commit
229c37a6da
@ -1,3 +1,7 @@
|
|||||||
|
Mon Oct 20 18:28:10 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* eval.c (rb_catch): backout.
|
||||||
|
|
||||||
Mon Oct 20 17:31:46 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
|
Mon Oct 20 17:31:46 2003 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
* eval.c (PUSH_FRAME): generate unique number to be TAG_JUMP()
|
* eval.c (PUSH_FRAME): generate unique number to be TAG_JUMP()
|
||||||
|
14
eval.c
14
eval.c
@ -10217,19 +10217,7 @@ rb_catch(tag, func, data)
|
|||||||
VALUE (*func)();
|
VALUE (*func)();
|
||||||
VALUE data;
|
VALUE data;
|
||||||
{
|
{
|
||||||
int state;
|
return rb_iterate((VALUE(*)_((VALUE)))catch_i, ID2SYM(rb_intern(tag)), func, data);
|
||||||
VALUE val = Qnil; /* OK */
|
|
||||||
|
|
||||||
PUSH_TAG(PROT_NONE);
|
|
||||||
PUSH_SCOPE();
|
|
||||||
if ((state = EXEC_TAG()) == 0) {
|
|
||||||
val = rb_iterate((VALUE(*)_((VALUE)))catch_i, ID2SYM(rb_intern(tag)), func, data);
|
|
||||||
}
|
|
||||||
POP_SCOPE();
|
|
||||||
POP_TAG();
|
|
||||||
if (state) JUMP_TAG(state);
|
|
||||||
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user