* gc.c (gc_start_internal): do not use rb_gc_start() and rb_gc().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2013-12-06 07:22:25 +00:00
Родитель b10a8c52e3
Коммит 0e20c2afa8
2 изменённых файлов: 19 добавлений и 16 удалений

Просмотреть файл

@ -1,3 +1,7 @@
Fri Dec 6 16:16:30 2013 Koichi Sasada <ko1@atdot.net>
* gc.c (gc_start_internal): do not use rb_gc_start() and rb_gc().
Fri Dec 6 15:24:30 2013 Koichi Sasada <ko1@atdot.net>
* gc.c (gc_start_internal, rb_gc): do not need

31
gc.c
Просмотреть файл

@ -5019,24 +5019,23 @@ gc_start_internal(int argc, VALUE *argv, VALUE self)
static VALUE keyword_syms[2];
rb_scan_args(argc, argv, "0:", &opt);
if (NIL_P(opt)) {
return rb_gc_start();
if (!NIL_P(opt)) {
if (!keyword_ids[0]) {
keyword_ids[0] = rb_intern("full_mark");
keyword_ids[1] = rb_intern("immediate_sweep");
keyword_syms[0] = ID2SYM(keyword_ids[0]);
keyword_syms[1] = ID2SYM(keyword_ids[1]);
}
rb_check_keyword_opthash(opt, keyword_ids, 0, 2);
if ((kwval = rb_hash_lookup2(opt, keyword_syms[0], Qundef)) != Qundef)
full_mark = RTEST(kwval);
if ((kwval = rb_hash_lookup2(opt, keyword_syms[1], Qundef)) != Qundef)
immediate_sweep = RTEST(kwval);
}
if (!keyword_ids[0]) {
keyword_ids[0] = rb_intern("full_mark");
keyword_ids[1] = rb_intern("immediate_sweep");
keyword_syms[0] = ID2SYM(keyword_ids[0]);
keyword_syms[1] = ID2SYM(keyword_ids[1]);
}
rb_check_keyword_opthash(opt, keyword_ids, 0, 2);
if ((kwval = rb_hash_lookup2(opt, keyword_syms[0], Qundef)) != Qundef)
full_mark = RTEST(kwval);
if ((kwval = rb_hash_lookup2(opt, keyword_syms[1], Qundef)) != Qundef)
immediate_sweep = RTEST(kwval);
garbage_collect(objspace, full_mark, immediate_sweep, GPR_FLAG_METHOD);
if (!finalizing) finalize_deferred(objspace);