summaryrefslogtreecommitdiffhomepage
path: root/src/range.c
diff options
context:
space:
mode:
authorJun Hiroe <[email protected]>2013-06-30 21:30:22 +0900
committerJun Hiroe <[email protected]>2013-06-30 21:30:22 +0900
commit85ea2f61449ef42c834aceecddad8cadc61e05ae (patch)
tree0e88616f10529b035d4408ae93f9871d5668f586 /src/range.c
parent6852680d36f51579830e5878a52f9a4c2a6af85b (diff)
downloadmruby-85ea2f61449ef42c834aceecddad8cadc61e05ae.tar.gz
mruby-85ea2f61449ef42c834aceecddad8cadc61e05ae.zip
Refactor range_eql() func in rangec.c
Diffstat (limited to 'src/range.c')
-rw-r--r--src/range.c37
1 files changed, 13 insertions, 24 deletions
diff --git a/src/range.c b/src/range.c
index 43de0e799..73d532d94 100644
--- a/src/range.c
+++ b/src/range.c
@@ -377,34 +377,23 @@ range_eql(mrb_state *mrb, mrb_value range)
{
mrb_value obj;
struct RRange *r, *o;
- mrb_bool eql_p;
mrb_get_args(mrb, "o", &obj);
- if (mrb_obj_equal(mrb, range, obj)) {
- eql_p = 1;
- }
- else if (!mrb_obj_is_kind_of(mrb, obj, RANGE_CLASS)) {
- eql_p = 0;
- }
- else {
- r = mrb_range_ptr(range);
- if (mrb_type(obj) != MRB_TT_RANGE) {
- eql_p = 0;
- }
- else {
- o = mrb_range_ptr(obj);
- if (!mrb_eql(mrb, r->edges->beg, o->edges->beg) ||
- !mrb_eql(mrb, r->edges->end, o->edges->end) ||
- (r->excl != o->excl)) {
- eql_p = 0;
- }
- else {
- eql_p = 1;
- }
- }
+
+ if (mrb_obj_equal(mrb, range, obj)) return mrb_true_value();
+ if (!mrb_obj_is_kind_of(mrb, obj, RANGE_CLASS)) {
+ return mrb_false_value();
}
+ if (mrb_type(obj) != MRB_TT_RANGE) return mrb_false_value();
- return mrb_bool_value(eql_p);
+ r = mrb_range_ptr(range);
+ o = mrb_range_ptr(obj);
+ if (!mrb_eql(mrb, r->edges->beg, o->edges->beg) ||
+ !mrb_eql(mrb, r->edges->end, o->edges->end) ||
+ (r->excl != o->excl)) {
+ return mrb_false_value();
+ }
+ return mrb_true_value();
}
/* 15.2.14.4.15(x) */