summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwanabe <wanabe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-08-18 02:44:10 +0000
committerwanabe <wanabe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-08-18 02:44:10 +0000
commitbd09aa628ade497a2359de09ff6a73bf20dfcdef (patch)
tree2a4a78c297275d9bfedad464e70c7ab3492ecc6a
parent6e2f7bbbc97175793bdb868ac1f9b9704a71611b (diff)
downloadruby-bd09aa628ade497a2359de09ff6a73bf20dfcdef.tar.gz
ruby-bd09aa628ade497a2359de09ff6a73bf20dfcdef.tar.xz
ruby-bd09aa628ade497a2359de09ff6a73bf20dfcdef.zip
* vm_insnhelper.c (vm_call_cfunc): ensure hook c-return.
[Bug #1588] * test/ruby/test_settracefunc.rb (TestSetTraceFunc#test_raise): follow above. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--test/ruby/test_settracefunc.rb2
-rw-r--r--vm_insnhelper.c2
3 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 8264b44a9..3b30e90e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Tue Aug 18 11:37:24 2009 wanabe <s.wanabe@gmail.com>
+
+ * vm_insnhelper.c (vm_call_cfunc): ensure hook c-return.
+ [Bug #1588]
+
+ * test/ruby/test_settracefunc.rb (TestSetTraceFunc#test_raise):
+ follow above.
+
Tue Aug 18 01:57:00 2009 Yukihiro Matsumoto <matz@ruby-lang.org>
* range.c (range_step): treat symbols specially so that iterating
diff --git a/test/ruby/test_settracefunc.rb b/test/ruby/test_settracefunc.rb
index 8e06c3b51..948616377 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/vm_insnhelper.c b/vm_insnhelper.c
index be8b07ed1..5da3f1783 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -370,7 +370,7 @@ vm_call_cfunc(rb_thread_t *th, rb_control_frame_t *reg_cfp,
#if defined(__cplusplus) || (__STDC_VERSION__ >= 199901L)
// TODO: fix me. separate event
#endif
- if (th->event_flags & RUBY_EVENT_C_RETURN) {
+ if (th->event_flags & (RUBY_EVENT_C_RETURN | RUBY_EVENT_VM)) {
state = TH_EXEC_TAG();
}
else {