1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* vm_trace.c (rb_suppress_tracing): bugfix for vm->trace_running

counter. And if tracing is already true, vm_trace_running ops is
	  skipped to control overflow.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
tarui 2012-12-20 12:02:37 +00:00
parent 8497a7b918
commit fbbb06f803
2 changed files with 10 additions and 2 deletions

View file

@ -1,3 +1,9 @@
Thu Dec 20 20:58:25 2012 Masaya Tarui <tarui@ruby-lang.org>
* vm_trace.c (rb_suppress_tracing): bugfix for vm->trace_running
counter. And if tracing is already true, vm_trace_running ops is
skipped to control overflow.
Thu Dec 20 18:29:54 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
* include/ruby/ruby.h (RTEST, NIL_P): make bare expressions without

View file

@ -333,7 +333,8 @@ rb_suppress_tracing(VALUE (*func)(VALUE), VALUE arg)
const int vm_tracing = th->vm->trace_running;
const int tracing = th->trace_running;
th->vm->trace_running = 1;
if(!tracing)
th->vm->trace_running++;
th->trace_running = 1;
raised = rb_threadptr_reset_raised(th);
outer_state = th->state;
@ -349,7 +350,8 @@ rb_suppress_tracing(VALUE (*func)(VALUE), VALUE arg)
rb_threadptr_set_raised(th);
}
th->trace_running = tracing;
th->vm->trace_running = vm_tracing;
if(!tracing)
th->vm->trace_running--;
if (state) {
JUMP_TAG(state);