From 51213bfc7ddb66d5caeef6b1bd5b42333d2f28be Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 26 Oct 2013 17:06:50 +0900 Subject: mrb_Integer() should not convert strings to integers --- src/object.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/object.c') diff --git a/src/object.c b/src/object.c index 1040a08ed..56d5e65cd 100644 --- a/src/object.c +++ b/src/object.c @@ -532,16 +532,14 @@ mrb_convert_to_integer(mrb_state *mrb, mrb_value val, int base) if (base != 0) goto arg_error; return val; - case MRB_TT_STRING: -string_conv: - return mrb_str_to_inum(mrb, val, base, TRUE); - default: break; } if (base != 0) { tmp = mrb_check_string_type(mrb, val); - if (!mrb_nil_p(tmp)) goto string_conv; + if (!mrb_nil_p(tmp)) { + return mrb_str_to_inum(mrb, val, base, TRUE); + } arg_error: mrb_raise(mrb, E_ARGUMENT_ERROR, "base specified for non string value"); } -- cgit v1.2.3