Commit 6852680d authored by Yukihiro "Matz" Matsumoto's avatar Yukihiro "Matz" Matsumoto

Merge pull request #1321 from suzukaze/refactor-range-c

Refactor mrb_range_eq() func in range.c.
parents 3adfe772 a2210274
...@@ -152,30 +152,22 @@ mrb_range_eq(mrb_state *mrb, mrb_value range) ...@@ -152,30 +152,22 @@ mrb_range_eq(mrb_state *mrb, mrb_value range)
struct RRange *rr; struct RRange *rr;
struct RRange *ro; struct RRange *ro;
mrb_value obj; mrb_value obj;
mrb_bool eq_p;
mrb_get_args(mrb, "o", &obj); mrb_get_args(mrb, "o", &obj);
if (mrb_obj_equal(mrb, range, obj)) { if (mrb_obj_equal(mrb, range, obj)) return mrb_true_value();
eq_p = 1; if (!mrb_obj_is_instance_of(mrb, obj, mrb_obj_class(mrb, range))) { /* same class? */
} return mrb_false_value();
else if (!mrb_obj_is_instance_of(mrb, obj, mrb_obj_class(mrb, range))) { /* same class? */
eq_p = 0;
} }
else {
rr = mrb_range_ptr(range); rr = mrb_range_ptr(range);
ro = mrb_range_ptr(obj); ro = mrb_range_ptr(obj);
if (!mrb_obj_equal(mrb, rr->edges->beg, ro->edges->beg) || if (!mrb_obj_equal(mrb, rr->edges->beg, ro->edges->beg) ||
!mrb_obj_equal(mrb, rr->edges->end, ro->edges->end) || !mrb_obj_equal(mrb, rr->edges->end, ro->edges->end) ||
rr->excl != ro->excl) { rr->excl != ro->excl) {
eq_p = 0; return mrb_false_value();
} }
else { return mrb_true_value();
eq_p = 1;
}
}
return mrb_bool_value(eq_p);
} }
static int static int
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment