diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-01-01 15:35:56 +0900 |
|---|---|---|
| committer | KOBAYASHI Shuji <[email protected]> | 2019-01-01 15:35:56 +0900 |
| commit | 648b57620a6f0bd03ab11db61b1fee343c889dfe (patch) | |
| tree | 631c9abeed19cc241f3d6e4981379fb00c4b48fe /mrbgems/mruby-range-ext/src | |
| parent | c6f9a09e393dd5630c59b184a4919311c5c3477b (diff) | |
| download | mruby-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')
| -rw-r--r-- | mrbgems/mruby-range-ext/src/range.c | 15 |
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); } |
