From 57db2d76251cdf0795917d8691ea9143a9a433cf Mon Sep 17 00:00:00 2001 From: yugui Date: Fri, 17 Jul 2009 13:31:50 +0000 Subject: merges r24148 from trunk into ruby_1_9_1. -- * id.c (Init_id), vm.c (vm_exec): @#__ThrowState__ is no longer used. [ruby-dev:38760] git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@24172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ eval.c | 1 - test/ruby/test_exception.rb | 19 +++++++++++++++++++ version.h | 2 +- vm.c | 5 ----- 5 files changed, 25 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6b37b63ca..5978aad9a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Jul 16 18:28:09 2009 Nobuyoshi Nakada + + * id.c (Init_id), vm.c (vm_exec): @#__ThrowState__ is no longer + used. [ruby-dev:38760] + Thu Jul 16 08:56:32 2009 Koichi Sasada * dir.c (push_glob): re-fix GC problem. diff --git a/eval.c b/eval.c index 6b46dc142..bd4d1228d 100644 --- a/eval.c +++ b/eval.c @@ -1065,7 +1065,6 @@ Init_eval(void) exception_error = rb_exc_new3(rb_eFatal, rb_obj_freeze(rb_str_new2("exception reentered"))); - rb_ivar_set(exception_error, idThrowState, INT2FIX(TAG_FATAL)); OBJ_TAINT(exception_error); OBJ_FREEZE(exception_error); } diff --git a/test/ruby/test_exception.rb b/test/ruby/test_exception.rb index cba88f5c9..1eaeb7b3f 100644 --- a/test/ruby/test_exception.rb +++ b/test/ruby/test_exception.rb @@ -223,4 +223,23 @@ class TestException < Test::Unit::TestCase end INPUT end + + def test_safe4 + cmd = proc{raise SystemExit} + safe0_p = proc{|*args| args} + + test_proc = proc { + $SAFE = 4 + begin + cmd.call + rescue SystemExit => e + safe0_p["SystemExit: #{e.inspect}"] + raise e + rescue Exception => e + safe0_p["Exception (NOT SystemExit): #{e.inspect}"] + raise e + end + } + assert_raise(SystemExit, '[ruby-dev:38760]') {test_proc.call} + end end diff --git a/version.h b/version.h index 0f7eb4aa9..5a8581517 100644 --- a/version.h +++ b/version.h @@ -1,6 +1,6 @@ #define RUBY_VERSION "1.9.1" #define RUBY_RELEASE_DATE "2009-07-16" -#define RUBY_PATCHLEVEL 241 +#define RUBY_PATCHLEVEL 242 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 1 diff --git a/vm.c b/vm.c index d9173ac1b..6a4ca3e75 100644 --- a/vm.c +++ b/vm.c @@ -1093,11 +1093,6 @@ vm_exec(rb_thread_t *th) err = th->errinfo; - if (state == TAG_RAISE) { - if (OBJ_FROZEN(err)) rb_exc_raise(err); - rb_ivar_set(err, idThrowState, INT2FIX(state)); - } - exception_handler: cont_pc = cont_sp = catch_iseqval = 0; -- cgit