diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-05-16 08:41:06 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-05-16 08:41:06 +0000 |
commit | a86d454538259e3269cbfc29ed01d1760676e5d0 (patch) | |
tree | 2c307a64aba29307489b22501fce7e6468c2e158 /gc.c | |
parent | be5ed87c2f2f8d17665fde4c939ac1605d402ac4 (diff) | |
download | ruby-a86d454538259e3269cbfc29ed01d1760676e5d0.tar.gz |
* gc.c (gc_marks, gc_marks_body): increase the counter of young objects
at the major GC because AGE2Promotion changes all old objects into
young objects at major GC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -4210,6 +4210,12 @@ gc_marks_body(rb_objspace_t *objspace, int full_mark) } else { objspace->profile.major_gc_count++; +#if RGENGC_AGE2_PROMOTION + /* all old objects change to young objects */ + objspace->rgengc.young_object_count += objspace->rgengc.old_object_count; +#endif + objspace->rgengc.remembered_shady_object_count = 0; + objspace->rgengc.old_object_count = 0; rgengc_mark_and_rememberset_clear(objspace, heap_eden); } #endif @@ -4570,9 +4576,6 @@ gc_marks(rb_objspace_t *objspace, int full_mark) gc_verify_internal_consistency(Qnil); #endif if (full_mark == TRUE) { /* major/full GC */ - objspace->rgengc.remembered_shady_object_count = 0; - objspace->rgengc.old_object_count = 0; - gc_marks_body(objspace, TRUE); { /* See the comment about RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR */ |