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 /src/gc.c | |
| 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 'src/gc.c')
| -rw-r--r-- | src/gc.c | 11 |
1 files changed, 2 insertions, 9 deletions
@@ -739,14 +739,7 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj) break; case MRB_TT_RANGE: - { - struct RRange *r = (struct RRange*)obj; - - if (r->edges) { - mrb_gc_mark_value(mrb, r->edges->beg); - mrb_gc_mark_value(mrb, r->edges->end); - } - } + mrb_gc_mark_range(mrb, (struct RRange*)obj); break; default: @@ -870,7 +863,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end) break; case MRB_TT_RANGE: - mrb_free(mrb, ((struct RRange*)obj)->edges); + mrb_gc_free_range(mrb, ((struct RRange*)obj)); break; case MRB_TT_DATA: |
