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

Add RubyVM.reset_debug_counters when RB_DEBUG_COUNTER

is defined. It's 0 by default and so it dissappears on actual build.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
k0kubun 2019-04-14 06:57:21 +00:00
parent 57f9a700d7
commit 5ce28c0642
3 changed files with 14 additions and 0 deletions

View file

@ -43,6 +43,15 @@ rb_debug_counter_show_results(const char *msg)
}
}
VALUE
rb_debug_counter_reset(void)
{
for (int i = 0; i < RB_DEBUG_COUNTER_MAX; i++) {
rb_debug_counter[i] = 0;
}
return Qnil;
}
__attribute__((destructor))
static void
debug_counter_show_results_at_exit(void)

View file

@ -319,6 +319,8 @@ rb_debug_counter_add(enum rb_debug_counter_type type, int add, int cond)
return cond;
}
VALUE rb_debug_counter_reset(void);
#define RB_DEBUG_COUNTER_INC(type) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, 1)
#define RB_DEBUG_COUNTER_INC_UNLESS(type, cond) (!rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, !(cond)))
#define RB_DEBUG_COUNTER_INC_IF(type, cond) rb_debug_counter_add(RB_DEBUG_COUNTER_##type, 1, (cond))

3
vm.c
View file

@ -2872,6 +2872,9 @@ Init_VM(void)
rb_undef_alloc_func(rb_cRubyVM);
rb_undef_method(CLASS_OF(rb_cRubyVM), "new");
rb_define_singleton_method(rb_cRubyVM, "stat", vm_stat, -1);
#if USE_DEBUG_COUNTER
rb_define_singleton_method(rb_cRubyVM, "reset_debug_counters", rb_debug_counter_reset, 0);
#endif
/* FrozenCore (hidden) */
fcore = rb_class_new(rb_cBasicObject);