refactoring C part of #2611

This commit is contained in:
Yukihiro "Matz" Matsumoto
2014-10-19 19:39:02 +09:00
parent c6669a328d
commit 4fd28deff9
+5 -11
View File
@@ -37,21 +37,15 @@ mrb_f_method(mrb_state *mrb, mrb_value self)
static mrb_value static mrb_value
mrb_f_array(mrb_state *mrb, mrb_value self) mrb_f_array(mrb_state *mrb, mrb_value self)
{ {
mrb_value argv, tmp; mrb_value arg, tmp;
mrb_get_args(mrb, "o", &argv);
tmp = mrb_check_array_type(mrb, argv);
mrb_get_args(mrb, "o", &arg);
tmp = mrb_check_convert_type(mrb, arg, MRB_TT_ARRAY, "Array", "to_ary");
if (mrb_nil_p(tmp)) { if (mrb_nil_p(tmp)) {
tmp = mrb_check_convert_type(mrb, argv, MRB_TT_ARRAY, "Array", "to_a"); tmp = mrb_check_convert_type(mrb, arg, MRB_TT_ARRAY, "Array", "to_a");
} }
if (mrb_nil_p(tmp)) { if (mrb_nil_p(tmp)) {
struct RArray *a; tmp = mrb_ary_new_from_values(mrb, 1, &arg);
tmp = mrb_ary_new_capa(mrb, 1);
a = mrb_ary_ptr(tmp);
a->ptr[0] = argv;
a->len = 1;
} }
return tmp; return tmp;