From 62d49743744638fc5ee17d1f96c3ca7105b8ab82 Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 31 Oct 2015 01:02:29 +0000 Subject: internal.h: RUBY_DTRACE_HOOK * internal.h (RUBY_DTRACE_HOOK): extract from RUBY_DTRACE_CREATE_HOOK for other type hooks. * gc.c (RUBY_DTRACE_GC_HOOK): ditto. * parse.y (RUBY_DTRACE_PARSE_HOOK): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- gc.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'gc.c') diff --git a/gc.c b/gc.c index fcfd53da49..1f8c84967f 100644 --- a/gc.c +++ b/gc.c @@ -8414,12 +8414,12 @@ gc_prof_timer_stop(rb_objspace_t *objspace) } } +#define RUBY_DTRACE_GC_HOOK(name) \ + do {if (RUBY_DTRACE_GC_##name##_ENABLED()) RUBY_DTRACE_GC_##name();} while (0) static inline void gc_prof_mark_timer_start(rb_objspace_t *objspace) { - if (RUBY_DTRACE_GC_MARK_BEGIN_ENABLED()) { - RUBY_DTRACE_GC_MARK_BEGIN(); - } + RUBY_DTRACE_GC_HOOK(MARK_BEGIN); #if GC_PROFILE_MORE_DETAIL if (gc_prof_enabled(objspace)) { gc_prof_record(objspace)->gc_mark_time = getrusage_time(); @@ -8430,9 +8430,7 @@ gc_prof_mark_timer_start(rb_objspace_t *objspace) static inline void gc_prof_mark_timer_stop(rb_objspace_t *objspace) { - if (RUBY_DTRACE_GC_MARK_END_ENABLED()) { - RUBY_DTRACE_GC_MARK_END(); - } + RUBY_DTRACE_GC_HOOK(MARK_END); #if GC_PROFILE_MORE_DETAIL if (gc_prof_enabled(objspace)) { gc_profile_record *record = gc_prof_record(objspace); @@ -8444,9 +8442,7 @@ gc_prof_mark_timer_stop(rb_objspace_t *objspace) static inline void gc_prof_sweep_timer_start(rb_objspace_t *objspace) { - if (RUBY_DTRACE_GC_SWEEP_BEGIN_ENABLED()) { - RUBY_DTRACE_GC_SWEEP_BEGIN(); - } + RUBY_DTRACE_GC_HOOK(SWEEP_BEGIN); if (gc_prof_enabled(objspace)) { gc_profile_record *record = gc_prof_record(objspace); @@ -8459,9 +8455,7 @@ gc_prof_sweep_timer_start(rb_objspace_t *objspace) static inline void gc_prof_sweep_timer_stop(rb_objspace_t *objspace) { - if (RUBY_DTRACE_GC_SWEEP_END_ENABLED()) { - RUBY_DTRACE_GC_SWEEP_END(); - } + RUBY_DTRACE_GC_HOOK(SWEEP_END); if (gc_prof_enabled(objspace)) { double sweep_time; -- cgit v1.2.3