diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | vm.c | 1 |
2 files changed, 6 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Fri Jun 27 14:25:52 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * vm.c (vm_eval_body): if thrown exception is frozen, reraise it to + create a new instance. + Fri Jun 27 13:29:26 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> * include/ruby/intern.h (rb_str_new2, rb_tainted_str_new2, @@ -1072,6 +1072,7 @@ vm_eval_body(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)); } |