diff --git a/ChangeLog b/ChangeLog index f80b887584..ced69f5822 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Tue Aug 18 11:37:24 2009 wanabe + + * vm_insnhelper.c (vm_call_cfunc): ensure hook c-return. + [Bug #1588] + + * test/ruby/test_settracefunc.rb (TestSetTraceFunc#test_raise): + follow above. + Mon Aug 17 14:35:03 2009 Nobuyoshi Nakada * parse.y (lex_get_str, lex_io_gets, rb_parser_compile_string): diff --git a/test/ruby/test_settracefunc.rb b/test/ruby/test_settracefunc.rb index 8e06c3b515..9486163770 100644 --- a/test/ruby/test_settracefunc.rb +++ b/test/ruby/test_settracefunc.rb @@ -167,6 +167,8 @@ class TestSetTraceFunc < Test::Unit::TestCase events.shift) assert_equal(["raise", 5, :test_raise, TestSetTraceFunc], events.shift) + assert_equal(["c-return", 5, :raise, Kernel], + events.shift) assert_equal(["c-call", 6, :===, Module], events.shift) assert_equal(["c-return", 6, :===, Module], diff --git a/version.h b/version.h index 02113f6ba3..b029f873d4 100644 --- a/version.h +++ b/version.h @@ -1,5 +1,5 @@ #define RUBY_VERSION "1.9.1" -#define RUBY_PATCHLEVEL 295 +#define RUBY_PATCHLEVEL 296 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 1 diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 2a48dba4ad..316f52aeb1 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -365,7 +365,7 @@ vm_call_cfunc(rb_thread_t *th, rb_control_frame_t *reg_cfp, EXEC_EVENT_HOOK(th, RUBY_EVENT_C_CALL, recv, id, klass); TH_PUSH_TAG(th); - if (th->event_flags & RUBY_EVENT_C_RETURN) { + if (th->event_flags & (RUBY_EVENT_C_RETURN | RUBY_EVENT_VM)) { state = TH_EXEC_TAG(); } else {