aboutsummaryrefslogtreecommitdiffstats
path: root/vm_insnhelper.c
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-22 11:09:47 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-22 11:09:47 +0000
commitd3140aca609457c32e57a9428770c9a2a80fb78e (patch)
tree6bb1c00b04458d141c87d15e68311ab502a18c28 /vm_insnhelper.c
parenta023c34441e57a8d8553f28790fc458ebf4f27be (diff)
downloadruby-d3140aca609457c32e57a9428770c9a2a80fb78e.tar.gz
compile.c: remove tracecoverage instruction for line coverage
Line coverage was based on special instruction "tracecoverage". Now, instead, it uses the mechanism of trace hook [Feature #14104]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r--vm_insnhelper.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 9dd8abf520..f82b0e075b 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -3883,6 +3883,12 @@ vm_trace(rb_execution_context_t *ec, rb_control_frame_t *reg_cfp, const VALUE *p
EXEC_EVENT_HOOK(ec, RUBY_EVENT_LINE, GET_SELF(), 0, 0, 0, Qundef);
reg_cfp->pc--;
}
+ if (events & RUBY_EVENT_COVERAGE_LINE) {
+ reg_cfp->pc++;
+ vm_dtrace(RUBY_EVENT_COVERAGE_LINE, ec);
+ EXEC_EVENT_HOOK(ec, RUBY_EVENT_COVERAGE_LINE, GET_SELF(), 0, 0, 0, Qundef);
+ reg_cfp->pc--;
+ }
if (event = (events & (RUBY_EVENT_END | RUBY_EVENT_RETURN | RUBY_EVENT_B_RETURN))) {
VM_ASSERT(event == RUBY_EVENT_END ||
event == RUBY_EVENT_RETURN ||