ruby-changes:14258
From: shyouhei <ko1@a...>
Date: Mon, 14 Dec 2009 03:35:55 +0900 (JST)
Subject: [ruby-changes:14258] Ruby:r26082 (ruby_1_8_7): merge revision(s) 25670:
shyouhei 2009-12-14 03:35:41 +0900 (Mon, 14 Dec 2009) New Revision: 26082 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26082 Log: merge revision(s) 25670: * eval.c (call_trace_func): remove the trace hook if any exception raised. [ruby-list:46515] Modified files: branches/ruby_1_8_7/ChangeLog branches/ruby_1_8_7/eval.c branches/ruby_1_8_7/test/ruby/test_settracefunc.rb branches/ruby_1_8_7/version.h Index: ruby_1_8_7/ChangeLog =================================================================== --- ruby_1_8_7/ChangeLog (revision 26081) +++ ruby_1_8_7/ChangeLog (revision 26082) @@ -1,3 +1,8 @@ +Mon Dec 14 03:21:59 2009 Nobuyoshi Nakada <nobu@r...> + + * eval.c (call_trace_func): remove the trace hook if any exception + raised. [ruby-list:46515] + Mon Dec 14 02:27:32 2009 Yusuke Endoh <mame@t...> * hash.c (rb_hash): always return a fixnum value because a return Index: ruby_1_8_7/version.h =================================================================== --- ruby_1_8_7/version.h (revision 26081) +++ ruby_1_8_7/version.h (revision 26082) @@ -2,7 +2,7 @@ #define RUBY_RELEASE_DATE "2009-12-14" #define RUBY_VERSION_CODE 187 #define RUBY_RELEASE_CODE 20091214 -#define RUBY_PATCHLEVEL 228 +#define RUBY_PATCHLEVEL 229 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 Index: ruby_1_8_7/test/ruby/test_settracefunc.rb =================================================================== --- ruby_1_8_7/test/ruby/test_settracefunc.rb (revision 26081) +++ ruby_1_8_7/test/ruby/test_settracefunc.rb (revision 26082) @@ -135,4 +135,9 @@ assert_equal(["c-call", 131, :set_trace_func, Kernel], events.shift) assert_equal([], events) end + + def test_bad_trace + e = Class.new(RuntimeError) + assert_raise(e) {set_trace_func proc{raise e}} + end end Index: ruby_1_8_7/eval.c =================================================================== --- ruby_1_8_7/eval.c (revision 26081) +++ ruby_1_8_7/eval.c (revision 26082) @@ -2772,7 +2772,11 @@ tracing = 0; ruby_current_node = node_save; SET_CURRENT_SOURCE(); - if (state) JUMP_TAG(state); + if (state) { + trace_func = 0; + rb_remove_event_hook(call_trace_func); + JUMP_TAG(state); + } } static VALUE -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/