summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNarihiro Nakamura <[email protected]>2013-01-17 10:11:33 +0900
committerNarihiro Nakamura <[email protected]>2013-01-17 10:20:21 +0900
commit7841a0cac5f5310499f24383ea23cf353840ba60 (patch)
treeebae615a4ba01e8bc8755bf61a95f7edc893dd99
parent4728070ec5104faf45d2a06a5b3e412c69f8a734 (diff)
downloadmruby-7841a0cac5f5310499f24383ea23cf353840ba60.tar.gz
mruby-7841a0cac5f5310499f24383ea23cf353840ba60.zip
Clear all old flags, even if we change the gc mode during the major gc.
-rw-r--r--src/gc.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/gc.c b/src/gc.c
index 69e36640d..1833bf984 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -1143,13 +1143,8 @@ static void
change_gen_gc_mode(mrb_state *mrb, mrb_int enable)
{
if (is_generational(mrb) && !enable) {
- if (is_major_gc(mrb)) {
- advance_phase(mrb, GC_STATE_NONE);
- }
- else {
- clear_all_old(mrb);
- gc_assert(mrb->gc_state == GC_STATE_NONE);
- }
+ clear_all_old(mrb);
+ gc_assert(mrb->gc_state == GC_STATE_NONE);
mrb->gc_full = FALSE;
}
else if (!is_generational(mrb) && enable) {