summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-range-ext/src/range.c
diff options
context:
space:
mode:
authorKOBAYASHI Shuji <[email protected]>2019-01-01 15:35:56 +0900
committerKOBAYASHI Shuji <[email protected]>2019-01-01 15:35:56 +0900
commit648b57620a6f0bd03ab11db61b1fee343c889dfe (patch)
tree631c9abeed19cc241f3d6e4981379fb00c4b48fe /mrbgems/mruby-range-ext/src/range.c
parentc6f9a09e393dd5630c59b184a4919311c5c3477b (diff)
downloadmruby-648b57620a6f0bd03ab11db61b1fee343c889dfe.tar.gz
mruby-648b57620a6f0bd03ab11db61b1fee343c889dfe.zip
range: Embed edges in RRange on boxing environment.
[Breaking changes] Developers must use following APIs for accessing attributes of RRange because RRange structure depends on boxing setting. - mrb_range_beg - mrb_range_end - mrb_range_excl_p
Diffstat (limited to 'mrbgems/mruby-range-ext/src/range.c')
-rw-r--r--mrbgems/mruby-range-ext/src/range.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/mrbgems/mruby-range-ext/src/range.c b/mrbgems/mruby-range-ext/src/range.c
index aca71cc01..1fc383755 100644
--- a/mrbgems/mruby-range-ext/src/range.c
+++ b/mrbgems/mruby-range-ext/src/range.c
@@ -48,11 +48,11 @@ mrb_range_cover(mrb_state *mrb, mrb_value range)
mrb_get_args(mrb, "o", &val);
- beg = r->edges->beg;
- end = r->edges->end;
+ beg = RANGE_BEG(r);
+ end = RANGE_END(r);
if (r_le(mrb, beg, val)) {
- if (r->excl) {
+ if (RANGE_EXCL(r)) {
if (r_lt(mrb, val, end))
return mrb_true_value();
}
@@ -86,10 +86,9 @@ mrb_range_last(mrb_state *mrb, mrb_value range)
{
mrb_value num;
mrb_value array;
- struct RRange *r = mrb_range_ptr(mrb, range);
if (mrb_get_args(mrb, "|o", &num) == 0) {
- return r->edges->end;
+ return mrb_range_end(mrb, range);
}
array = mrb_funcall(mrb, range, "to_a", 0);
@@ -116,9 +115,9 @@ mrb_range_size(mrb_state *mrb, mrb_value range)
mrb_bool num_p = TRUE;
mrb_bool excl;
- beg = r->edges->beg;
- end = r->edges->end;
- excl = r->excl;
+ beg = RANGE_BEG(r);
+ end = RANGE_END(r);
+ excl = RANGE_EXCL(r);
if (mrb_fixnum_p(beg)) {
beg_f = (mrb_float)mrb_fixnum(beg);
}