summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKouhei Yanagita <[email protected]>2023-11-22 18:12:23 +0900
committerAaron Patterson <[email protected]>2023-12-12 09:36:37 -0800
commit06e2fbb8260022de8532d2e940fc69e8ea413679 ()
treed65696ce0fa324f2d00b77cebd532accea61fe4c
parent1f22245ed5004ef097e192aec157b34409214a2a (diff)
[Bug #19114] Fix for multiple calls of TracePoint#enable
-rw-r--r--test/ruby/test_settracefunc.rb12
-rw-r--r--vm_trace.c4
2 files changed, 16 insertions, 0 deletions
@@ -2459,6 +2459,18 @@ CODE
assert_equal [:tp1, 1, 2, :tp2, 3], events
end
def test_multiple_tracepoints_same_bmethod
events = []
tp1 = TracePoint.new(:return) do |tp|
@@ -1197,6 +1197,10 @@ rb_tracepoint_enable(VALUE tpval)
rb_raise(rb_eArgError, "can't nest-enable a targeting TracePoint");
}
if (tp->target_th) {
rb_thread_add_event_hook2(tp->target_th->self, (rb_event_hook_func_t)tp_call_trace, tp->events, tpval,
RUBY_EVENT_HOOK_FLAG_SAFE | RUBY_EVENT_HOOK_FLAG_RAW_ARG);