From 406dafbb347cb81f6d256d18ac9fd2908a9cb8ef Mon Sep 17 00:00:00 2001 From: Matt Valentine-House Date: Fri, 24 Nov 2023 11:36:55 +0000 Subject: [PATCH] [PRISM] Insert Tracepoint line events on line change --- prism_compile.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/prism_compile.c b/prism_compile.c index 840f980253..6850c84c04 100644 --- a/prism_compile.c +++ b/prism_compile.c @@ -1490,6 +1490,17 @@ pm_compile_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *const ret, int lineno = (int)pm_newline_list_line_column(&newline_list, node->location.start).line; NODE dummy_line_node = generate_dummy_line_node(lineno, lineno); + if (node->flags & PM_NODE_FLAG_NEWLINE && + ISEQ_COMPILE_DATA(iseq)->last_line != lineno) { + int event = RUBY_EVENT_LINE; + + ISEQ_COMPILE_DATA(iseq)->last_line = lineno; + if (ISEQ_COVERAGE(iseq) && ISEQ_LINE_COVERAGE(iseq)) { + event |= RUBY_EVENT_COVERAGE_LINE; + } + ADD_TRACE(ret, event); + } + switch (PM_NODE_TYPE(node)) { case PM_ALIAS_GLOBAL_VARIABLE_NODE: { pm_alias_global_variable_node_t *alias_node = (pm_alias_global_variable_node_t *) node;