mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Refactor mrb_ary_eql() func in array.c.
This commit is contained in:
+8
-20
@@ -1091,30 +1091,18 @@ static mrb_value
|
||||
mrb_ary_eql(mrb_state *mrb, mrb_value ary1)
|
||||
{
|
||||
mrb_value ary2;
|
||||
mrb_bool eql_p;
|
||||
mrb_int i;
|
||||
|
||||
mrb_get_args(mrb, "o", &ary2);
|
||||
if (mrb_obj_equal(mrb, ary1, ary2)) {
|
||||
eql_p = 1;
|
||||
}
|
||||
else if (!mrb_array_p(ary2)) {
|
||||
eql_p = 0;
|
||||
}
|
||||
else if (RARRAY_LEN(ary1) != RARRAY_LEN(ary2)) {
|
||||
eql_p = 0;
|
||||
}
|
||||
else {
|
||||
mrb_int i;
|
||||
eql_p = 1;
|
||||
for (i=0; i<RARRAY_LEN(ary1); i++) {
|
||||
if (!mrb_eql(mrb, ary_elt(ary1, i), ary_elt(ary2, i))) {
|
||||
eql_p = 0;
|
||||
break;
|
||||
}
|
||||
if (mrb_obj_equal(mrb, ary1, ary2)) return mrb_true_value();
|
||||
if (!mrb_array_p(ary2)) return mrb_false_value();
|
||||
if (RARRAY_LEN(ary1) != RARRAY_LEN(ary2)) return mrb_false_value();
|
||||
for (i=0; i<RARRAY_LEN(ary1); i++) {
|
||||
if (!mrb_eql(mrb, ary_elt(ary1, i), ary_elt(ary2, i))) {
|
||||
return mrb_false_value();
|
||||
}
|
||||
}
|
||||
|
||||
return mrb_bool_value(eql_p);
|
||||
return mrb_true_value();
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user