diff options
| author | Jun Hiroe <[email protected]> | 2013-07-01 23:51:37 +0900 |
|---|---|---|
| committer | Jun Hiroe <[email protected]> | 2013-07-01 23:53:48 +0900 |
| commit | 72892cb14ae3f01ca29e186de2b7171738abdfcf (patch) | |
| tree | f01f7c0cf9885973903b19e2fe3efc777c530b34 /src/array.c | |
| parent | 2f8e9b474f41d1fe72cbdc626fc990f2a7544a9e (diff) | |
| download | mruby-72892cb14ae3f01ca29e186de2b7171738abdfcf.tar.gz mruby-72892cb14ae3f01ca29e186de2b7171738abdfcf.zip | |
Refactor mrb_ary_eql() func in array.c.
Diffstat (limited to 'src/array.c')
| -rw-r--r-- | src/array.c | 28 |
1 files changed, 8 insertions, 20 deletions
diff --git a/src/array.c b/src/array.c index a22730776..ed087515a 100644 --- a/src/array.c +++ b/src/array.c @@ -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 |
