mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
refactoring C part of #2611
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user