diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-11-13 20:31:29 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-11-13 20:31:29 +0000 |
commit | 97c2eac2dfe48dcaddb7454035b5cec005976246 (patch) | |
tree | a9a381dd28343e378a54a63243fffad8157f053a | |
parent | b887f4fb45e091eb644313699192fff538a92934 (diff) | |
download | ruby-97c2eac2dfe48dcaddb7454035b5cec005976246.tar.gz |
* gc.c: refactoring.
* gc.c: use GC_ENABLE_INCREMENTAL_MARK instead of USE_RINCGC.
* gc.c (gc_start): check FORCE_MAJOR_GC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | gc.c | 9 |
2 files changed, 13 insertions, 4 deletions
@@ -1,3 +1,11 @@ +Fri Nov 14 05:29:46 2014 Koichi Sasada <ko1@atdot.net> + + * gc.c: refactoring. + + * gc.c: use GC_ENABLE_INCREMENTAL_MARK instead of USE_RINCGC. + + * gc.c (gc_start): check FORCE_MAJOR_GC. + Fri Nov 14 04:51:18 2014 Koichi Sasada <ko1@atdot.net> * gc.c: Tuning RincGC parameters. @@ -586,7 +586,7 @@ typedef struct rb_objspace { size_t error_count; #endif } rgengc; -#if USE_RINCGC +#if GC_ENABLE_INCREMENTAL_MARK struct { size_t pooled_slots; size_t step_slots; @@ -5374,7 +5374,6 @@ rb_gc_writebarrier_generational(VALUE a, VALUE b) } #if GC_ENABLE_INCREMENTAL_MARK - static void gc_mark_from(rb_objspace_t *objspace, VALUE obj, VALUE parent) { @@ -5526,7 +5525,6 @@ rb_gc_unprotect_logging(void *objptr, const char *filename, int line) st_insert(rgengc_unprotect_logging_table, (st_data_t)ptr, cnt); } } - #endif /* USE_RGENGC */ void @@ -5852,9 +5850,12 @@ gc_start(rb_objspace_t *objspace, const int full_mark, const int immediate_mark, reason |= objspace->rgengc.need_major_gc; do_full_mark = TRUE; } + else if (RGENGC_FORCE_MAJOR_GC) { + reason = GPR_FLAG_MAJOR_BY_FORCE; + do_full_mark = TRUE; + } objspace->rgengc.need_major_gc = GPR_FLAG_NONE; - if (RGENGC_FORCE_MAJOR_GC) objspace->rgengc.need_major_gc = GPR_FLAG_MAJOR_BY_NOFREE; #endif } |