summaryrefslogtreecommitdiff
path: root/numeric.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-04-02 06:33:26 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-04-02 06:33:26 +0000
commit9a686593c76ac1910914c0318dbc085387aa7a67 (patch)
tree149a7f1379157559da03c6b99bef515c316c0bb1 /numeric.c
parent9731a745baadd2a1856d729dcd6f7db9cb2c4c13 (diff)
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
Diffstat (limited to 'numeric.c')
-rw-r--r--numeric.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/numeric.c b/numeric.c
index 4bb2a3263e..37217a15bc 100644
--- a/numeric.c
+++ b/numeric.c
@@ -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);
}