diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-07-17 13:31:50 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-07-17 13:31:50 +0000 |
commit | 57db2d76251cdf0795917d8691ea9143a9a433cf (patch) | |
tree | 8c5803320d0ec16fc4fd9b18f84c964dd8945a4d | |
parent | bc5ed9e80eb1386dae18d8a697b263bd95956c68 (diff) | |
download | ruby-57db2d76251cdf0795917d8691ea9143a9a433cf.tar.gz ruby-57db2d76251cdf0795917d8691ea9143a9a433cf.tar.xz ruby-57db2d76251cdf0795917d8691ea9143a9a433cf.zip |
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
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | eval.c | 1 | ||||
-rw-r--r-- | test/ruby/test_exception.rb | 19 | ||||
-rw-r--r-- | version.h | 2 | ||||
-rw-r--r-- | vm.c | 5 |
5 files changed, 25 insertions, 7 deletions
@@ -1,3 +1,8 @@ +Thu Jul 16 18:28:09 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * 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 <ko1@atdot.net> * dir.c (push_glob): re-fix GC problem. @@ -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 @@ -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 @@ -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; |