aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--vm_trace.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/vm_trace.c b/vm_trace.c
index 405f6dd34e..39d2a062db 100644
--- a/vm_trace.c
+++ b/vm_trace.c
@@ -381,14 +381,13 @@ rb_suppress_tracing(VALUE (*func)(VALUE), VALUE arg)
rb_execution_context_t *ec = GET_EC();
rb_vm_t *vm = rb_ec_vm_ptr(ec);
enum ruby_tag_type state;
- const int volatile tracing = ec->trace_arg ? 1 : 0;
rb_trace_arg_t dummy_trace_arg;
dummy_trace_arg.event = 0;
- if (!tracing) {
+ if (!ec->trace_arg) {
vm->trace_running++;
+ ec->trace_arg = &dummy_trace_arg;
}
- if (!ec->trace_arg) ec->trace_arg = &dummy_trace_arg;
raised = rb_ec_reset_raised(ec);
@@ -402,8 +401,8 @@ rb_suppress_tracing(VALUE (*func)(VALUE), VALUE arg)
rb_ec_reset_raised(ec);
}
- if (ec->trace_arg == &dummy_trace_arg) ec->trace_arg = NULL;
- if (!tracing) {
+ if (ec->trace_arg == &dummy_trace_arg) {
+ ec->trace_arg = NULL;
vm->trace_running--;
}