summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-10-29 13:22:04 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-10-29 13:22:04 +0900
commitcbbf84044000878a219fad47ea16dae0cc1699a3 (patch)
treea6d659ad053ec26ef0fd71c55ae82c782259b4b5
parent73593f7d193d89bcc160ae388bdd5850ff26c87b (diff)
downloadmruby-cbbf84044000878a219fad47ea16dae0cc1699a3.tar.gz
mruby-cbbf84044000878a219fad47ea16dae0cc1699a3.zip
use mrb_get_args to parse Integer() option; ref #2625
-rw-r--r--mrbgems/mruby-kernel-ext/src/kernel.c16
1 files changed, 2 insertions, 14 deletions
diff --git a/mrbgems/mruby-kernel-ext/src/kernel.c b/mrbgems/mruby-kernel-ext/src/kernel.c
index a72516f48..baccbd303 100644
--- a/mrbgems/mruby-kernel-ext/src/kernel.c
+++ b/mrbgems/mruby-kernel-ext/src/kernel.c
@@ -49,22 +49,10 @@ mrb_f_method(mrb_state *mrb, mrb_value self)
static mrb_value
mrb_f_integer(mrb_state *mrb, mrb_value self)
{
- mrb_value *argv;
mrb_value arg;
- int argc;
- int base = 0;
+ mrb_int base = 0;
- mrb_get_args(mrb, "*", &argv, &argc);
- switch (argc) {
- case 2:
- base = mrb_fixnum(argv[1]);
- case 1:
- arg = argv[0];
- break;
- default:
- mrb_raisef(mrb, E_ARGUMENT_ERROR, "wrong number of arguments (%S for 1..2)",
- mrb_fixnum_value(argc));
- }
+ mrb_get_args(mrb, "o|i", &arg, &base);
return mrb_convert_to_integer(mrb, arg, base);
}