summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2019-05-04 00:19:14 +0900
committerGitHub <[email protected]>2019-05-04 00:19:14 +0900
commit181d14668a3c60e31c8f3de5b6bb075842b6c357 (patch)
tree0fe640d4ceb7ca0ebc335005a923d9a0ce16a7d9 /src
parent187b4c819fb983aecefbf996612e3504703f4dca (diff)
parent0692f7916cc9865e276a58812186cac7f02dc042 (diff)
downloadmruby-181d14668a3c60e31c8f3de5b6bb075842b6c357.tar.gz
mruby-181d14668a3c60e31c8f3de5b6bb075842b6c357.zip
Merge pull request #4420 from shuujii/simplify-conversion-process-for-i-in-mrb_get_args
Simplify conversion process for `i` in `mrb_get_args()`
Diffstat (limited to 'src')
-rw-r--r--src/class.c24
1 files changed, 1 insertions, 23 deletions
diff --git a/src/class.c b/src/class.c
index 254f5b005..2cabc820e 100644
--- a/src/class.c
+++ b/src/class.c
@@ -838,29 +838,7 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
p = va_arg(ap, mrb_int*);
if (i < argc) {
- switch (mrb_type(ARGV[arg_i])) {
- case MRB_TT_FIXNUM:
- *p = mrb_fixnum(ARGV[arg_i]);
- break;
-#ifndef MRB_WITHOUT_FLOAT
- case MRB_TT_FLOAT:
- {
- mrb_float f = mrb_float(ARGV[arg_i]);
-
- if (!FIXABLE_FLOAT(f)) {
- mrb_raise(mrb, E_RANGE_ERROR, "float too big for int");
- }
- *p = (mrb_int)f;
- }
- break;
-#endif
- case MRB_TT_STRING:
- mrb_raise(mrb, E_TYPE_ERROR, "no implicit conversion of String into Integer");
- break;
- default:
- *p = mrb_fixnum(mrb_Integer(mrb, ARGV[arg_i]));
- break;
- }
+ *p = mrb_fixnum(mrb_to_int(mrb, ARGV[arg_i]));
arg_i++;
i++;
}