aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--vm_eval.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 457aeb8c45..273ef3b28a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Thu May 16 17:15:32 2013 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * vm_eval.c (rb_catch_obj): add volatile to tag to prevent crash
+ experimentally.
+ http://www.rubyist.net/~akr/chkbuild/debian/ruby-trunk/log/20130515T133500Z.log.html.gz
+
Thu May 16 16:19:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* win32/Makefile.sub (verconf.in): no longer used.
diff --git a/vm_eval.c b/vm_eval.c
index 3f52c43e3b..5ba8668790 100644
--- a/vm_eval.c
+++ b/vm_eval.c
@@ -1798,12 +1798,13 @@ rb_catch(const char *tag, VALUE (*func)(), VALUE data)
}
VALUE
-rb_catch_obj(VALUE tag, VALUE (*func)(), VALUE data)
+rb_catch_obj(VALUE t, VALUE (*func)(), VALUE data)
{
int state;
volatile VALUE val = Qnil; /* OK */
rb_thread_t *th = GET_THREAD();
rb_control_frame_t *saved_cfp = th->cfp;
+ volatile VALUE tag = t;
TH_PUSH_TAG(th);