diff --git a/ChangeLog b/ChangeLog index 7700b87f56..cdf5dca809 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Tue Jul 26 18:55:55 2016 Koichi Sasada + + * gc.c (gc_mark): add `inline' explicitly. + I expected to inline this function implicitly at the loop + (ex: marking T_ARRAY objects) but sometimes it remains as + normal call. + Tue Jul 26 16:33:16 2016 Martin Duerst * enc/windows_1257.c, test/ruby/enc/test_case_comprehensive.rb: diff --git a/gc.c b/gc.c index bc55f78a50..fd0566c4ca 100644 --- a/gc.c +++ b/gc.c @@ -853,7 +853,7 @@ static void gc_sweep_rest(rb_objspace_t *objspace); static void gc_sweep_continue(rb_objspace_t *objspace, rb_heap_t *heap); #endif -static void gc_mark(rb_objspace_t *objspace, VALUE ptr); +static inline void gc_mark(rb_objspace_t *objspace, VALUE ptr); static void gc_mark_ptr(rb_objspace_t *objspace, VALUE ptr); static void gc_mark_maybe(rb_objspace_t *objspace, VALUE ptr); static void gc_mark_children(rb_objspace_t *objspace, VALUE ptr); @@ -4347,7 +4347,7 @@ gc_mark_ptr(rb_objspace_t *objspace, VALUE obj) } } -static void +static inline void gc_mark(rb_objspace_t *objspace, VALUE obj) { if (!is_markable_object(objspace, obj)) return;