summaryrefslogtreecommitdiffhomepage
path: root/src/gc.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 /src/gc.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 'src/gc.c')
-rw-r--r--src/gc.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/src/gc.c b/src/gc.c
index a52c64bfa..ec52787e8 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -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: