diff options
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 31 |
1 files changed, 11 insertions, 20 deletions
@@ -2722,12 +2722,7 @@ os_each_obj(int argc, VALUE *argv, VALUE os) { VALUE of; - if (argc == 0) { - of = 0; - } - else { - rb_scan_args(argc, argv, "01", &of); - } + of = (!rb_check_arity(argc, 0, 1) ? 0 : argv[0]); RETURN_ENUMERATOR(os, 1, &of); return os_obj_of(of); } @@ -3487,9 +3482,10 @@ count_objects(int argc, VALUE *argv, VALUE os) size_t freed = 0; size_t total = 0; size_t i; - VALUE hash; + VALUE hash = Qnil; - if (rb_scan_args(argc, argv, "01", &hash) == 1) { + if (rb_check_arity(argc, 0, 1) == 1) { + hash = argv[0]; if (!RB_TYPE_P(hash, T_HASH)) rb_raise(rb_eTypeError, "non-hash given"); } @@ -7077,13 +7073,13 @@ gc_latest_gc_info(int argc, VALUE *argv, VALUE self) rb_objspace_t *objspace = &rb_objspace; VALUE arg = Qnil; - if (rb_scan_args(argc, argv, "01", &arg) == 1) { + if (rb_check_arity(argc, 0, 1) == 1) { + arg = argv[0]; if (!SYMBOL_P(arg) && !RB_TYPE_P(arg, T_HASH)) { rb_raise(rb_eTypeError, "non-hash or symbol given"); } } - - if (arg == Qnil) { + else { arg = rb_hash_new(); } @@ -7452,7 +7448,8 @@ gc_stat(int argc, VALUE *argv, VALUE self) { VALUE arg = Qnil; - if (rb_scan_args(argc, argv, "01", &arg) == 1) { + if (rb_check_arity(argc, 0, 1) == 1) { + arg = argv[0]; if (SYMBOL_P(arg)) { size_t value = gc_stat_internal(arg); return SIZET2NUM(value); @@ -7461,8 +7458,7 @@ gc_stat(int argc, VALUE *argv, VALUE self) rb_raise(rb_eTypeError, "non-hash or symbol given"); } } - - if (arg == Qnil) { + else { arg = rb_hash_new(); } gc_stat_internal(arg); @@ -9455,12 +9451,7 @@ gc_profile_report(int argc, VALUE *argv, VALUE self) { VALUE out; - if (argc == 0) { - out = rb_stdout; - } - else { - rb_scan_args(argc, argv, "01", &out); - } + out = (!rb_check_arity(argc, 0, 1) ? rb_stdout : argv[0]); gc_profile_dump_on(out, rb_io_write); return Qnil; |