summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMasaki Muranaka <[email protected]>2013-03-19 10:41:57 +0900
committerMasaki Muranaka <[email protected]>2013-03-19 11:04:23 +0900
commitbe5986b2b4fc1534d753d53ac26081c98ce8883d (patch)
treefb7cdf5243174f28b33ac63fe7299b74ca8d269b
parent90cd202fd14fddd327c789c0b03e2c27b0fd33ce (diff)
downloadmruby-be5986b2b4fc1534d753d53ac26081c98ce8883d.tar.gz
mruby-be5986b2b4fc1534d753d53ac26081c98ce8883d.zip
Use mrb_true_or_false_value() / in mrb_range_include().
-rw-r--r--src/range.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/range.c b/src/range.c
index 976db6491..7b58eadab 100644
--- a/src/range.c
+++ b/src/range.c
@@ -232,21 +232,17 @@ mrb_range_include(mrb_state *mrb, mrb_value range)
mrb_value val;
struct RRange *r = mrb_range_ptr(range);
mrb_value beg, end;
+ mrb_bool include_p;
mrb_get_args(mrb, "o", &val);
beg = r->edges->beg;
end = r->edges->end;
- if (r_le(mrb, beg, val)) {
- /* beg <= val */
- if (r->excl) {
- if (r_gt(mrb, end, val)) return mrb_true_value(); /* end > val */
- }
- else {
- if (r_ge(mrb, end, val)) return mrb_true_value(); /* end >= val */
- }
- }
- return mrb_false_value();
+ include_p = r_le(mrb, beg, val) && /* beg <= val */
+ ((r->excl && r_gt(mrb, end, val)) || /* end > val */
+ (r_ge(mrb, end, val))); /* end >= val */
+
+ return mrb_true_or_false_value(include_p);
}
/*