Skip to content

Commit a23c3d9

Browse files
committed
[GR-19220] Convert known rb_tracepoint_new() events to Symbols.
PullRequest: truffleruby/1995
2 parents 2b84599 + 1eccbca commit a23c3d9

File tree

1 file changed

+28
-17
lines changed

1 file changed

+28
-17
lines changed

lib/truffle/truffle/cext.rb

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -622,25 +622,36 @@ def rb_tracepoint_new(events, func, data)
622622

623623
def events_to_events_array(events)
624624
events_ary = []
625-
if events.anybits? 0x0001
626-
events ^= 0x0001
627-
events_ary << :line
628-
end
629-
if events.anybits? 0x0002
630-
events ^= 0x0002
631-
events_ary << :class
625+
parse_event = -> bits, name do
626+
if events.anybits? bits
627+
events ^= bits
628+
if Symbol === name
629+
events_ary << name
630+
else
631+
warn "warning: rb_tracepoint_new(#{name}) is not yet implemented" if $VERBOSE
632+
events_ary << :never
633+
end
634+
end
632635
end
633636

634-
if events.anybits? 0x100000
635-
events ^= 0x100000
636-
warn 'warning: rb_tracepoint_new(RUBY_INTERNAL_EVENT_NEWOBJ) is not yet implemented' if $VERBOSE
637-
events_ary << :never
638-
end
639-
if events.anybits? 0x200000
640-
events ^= 0x200000
641-
warn 'warning: rb_tracepoint_new(RUBY_INTERNAL_EVENT_FREEOBJ) is not yet implemented' if $VERBOSE
642-
events_ary << :never
643-
end
637+
parse_event[0x0001, :line]
638+
parse_event[0x0002, :class]
639+
parse_event[0x0004, :end]
640+
parse_event[0x0008, :call]
641+
parse_event[0x0010, :return]
642+
parse_event[0x0020, :c_call]
643+
parse_event[0x0040, :c_return]
644+
parse_event[0x0080, :raise]
645+
646+
parse_event[0x0100, :b_call]
647+
parse_event[0x0200, :b_return]
648+
parse_event[0x0400, :thread_begin]
649+
parse_event[0x0800, :thread_end]
650+
parse_event[0x1000, :fiber_switch]
651+
parse_event[0x2000, :script_compiled]
652+
653+
parse_event[0x100000, 'RUBY_INTERNAL_EVENT_NEWOBJ']
654+
parse_event[0x200000, 'RUBY_INTERNAL_EVENT_FREEOBJ']
644655

645656
raise ArgumentError, "unknown event #{'%#x' % events}" unless events == 0
646657
events_ary

0 commit comments

Comments
 (0)