summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--gc.c4
2 files changed, 9 insertions, 2 deletions
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 <ko1@atdot.net>
+
+ * 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 <duerst@it.aoyama.ac.jp>
* 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;