numeric.c: prefer rb_check_arity

* numeric.c (flo_round, int_to_s, int_round): use rb_check_arity
  instead of rb_scan_args for a simple optional argument.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-04-02 06:33:26 +00:00
Родитель 9731a745ba
Коммит 9a686593c7
1 изменённых файлов: 8 добавлений и 14 удалений

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

@ -1842,14 +1842,13 @@ flo_truncate(VALUE num);
static VALUE
flo_round(int argc, VALUE *argv, VALUE num)
{
VALUE nd;
double number, f;
int ndigits = 0;
int binexp;
enum {float_dig = DBL_DIG+2};
if (argc > 0 && rb_scan_args(argc, argv, "01", &nd) == 1) {
ndigits = NUM2INT(nd);
if (rb_check_arity(argc, 0, 1)) {
ndigits = NUM2INT(argv[0]);
}
if (ndigits < 0) {
return rb_int_round(flo_truncate(num), ndigits);
@ -3015,13 +3014,10 @@ int_to_s(int argc, VALUE *argv, VALUE x)
{
int base;
if (argc == 0) base = 10;
else {
VALUE b;
rb_scan_args(argc, argv, "01", &b);
base = NUM2INT(b);
}
if (rb_check_arity(argc, 0, 1))
base = NUM2INT(argv[0]);
else
base = 10;
return rb_int2str(x, base);
}
@ -4142,12 +4138,10 @@ int_dotimes(VALUE num)
static VALUE
int_round(int argc, VALUE* argv, VALUE num)
{
VALUE n;
int ndigits;
if (argc == 0) return num;
rb_scan_args(argc, argv, "1", &n);
ndigits = NUM2INT(n);
if (!rb_check_arity(argc, 0, 1)) return num;
ndigits = NUM2INT(argv[0]);
if (ndigits > 0) {
return rb_Float(num);
}