summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-20 09:28:13 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-20 09:28:13 +0000
commit6148de1a6fdf7b1a6ef46dcad7322c781f3394ac (patch)
tree073fc6f6984c3796f80715ecef837f7d071e637a
parent6139f3ebed65764ba7aa7869ad8ecaec872cebc3 (diff)
downloadruby-6148de1a6fdf7b1a6ef46dcad7322c781f3394ac.tar.gz
ruby-6148de1a6fdf7b1a6ef46dcad7322c781f3394ac.tar.xz
ruby-6148de1a6fdf7b1a6ef46dcad7322c781f3394ac.zip
* eval.c (rb_catch): backout.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--eval.c14
2 files changed, 5 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index 2f9fddd9e..6ae6633ae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
* eval.c (PUSH_FRAME): generate unique number to be TAG_JUMP()
diff --git a/eval.c b/eval.c
index c7a778716..623c98406 100644
--- a/eval.c
+++ b/eval.c
@@ -10217,19 +10217,7 @@ rb_catch(tag, func, data)
VALUE (*func)();
VALUE data;
{
- int state;
- 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;
+ return rb_iterate((VALUE(*)_((VALUE)))catch_i, ID2SYM(rb_intern(tag)), func, data);
}
static VALUE