From d66d2beb7b436c0a5d33f0d0fe5dcc2a804689d4 Mon Sep 17 00:00:00 2001 From: ko1 Date: Sat, 27 Dec 2008 04:45:28 +0000 Subject: * eval.c (get_errinfo): return th->errinfo value if normal errinfo place (dynamic local viriable) is not found. fixes Bug #732 [ruby-dev:37046]. * bootstraptest/test_proc.rb: add a test. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ bootstraptest/test_proc.rb | 8 ++++++++ eval.c | 3 ++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 304e85b77..a38c67993 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Sat Dec 27 13:36:55 2008 Koichi Sasada + + * eval.c (get_errinfo): return th->errinfo value + if normal errinfo place (dynamic local viriable) is not found. + fixes Bug #732 [ruby-dev:37046]. + + * bootstraptest/test_proc.rb: add a test. + Sat Dec 27 13:10:43 2008 Yuki Sonoda (Yugui) * man/irb.1: adds -v, -h, -E and -U. diff --git a/bootstraptest/test_proc.rb b/bootstraptest/test_proc.rb index 9bef6ea85..820dc1f76 100644 --- a/bootstraptest/test_proc.rb +++ b/bootstraptest/test_proc.rb @@ -418,3 +418,11 @@ assert_equal 'foo!', %q{ fp.bar }, 'Subclass of Proc' + +assert_equal 'ok', %q{ + at_exit{ + print $!.message + } + raise "ok" +} + diff --git a/eval.c b/eval.c index 2dd75afa8..74489d3a6 100644 --- a/eval.c +++ b/eval.c @@ -961,7 +961,8 @@ get_errinfo(void) return *ptr; } else { - return Qnil; + rb_thread_t *th = GET_THREAD(); + return th->errinfo; } } -- cgit