summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-06-14 11:25:12 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-06-14 11:25:12 +0900
commitba090a46af56355d8c4a458f8000cceae26d1c4f (patch)
treeebd5af341d91e99e7f0364af4446cc68515020d8
parenta7f77fefa9842f6a46734caea800250f0be8588c (diff)
downloadmruby-ba090a46af56355d8c4a458f8000cceae26d1c4f.tar.gz
mruby-ba090a46af56355d8c4a458f8000cceae26d1c4f.zip
Need to add a write barrier for ranges; fix #4042
Ranges are almost immutable but `initialize` and `initialize_copy` modify the receiver so that we need to add a write barrier.
-rw-r--r--src/range.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/range.c b/src/range.c
index 0360b48ae..e45308d35 100644
--- a/src/range.c
+++ b/src/range.c
@@ -120,6 +120,7 @@ range_init(mrb_state *mrb, mrb_value range, mrb_value beg, mrb_value end, mrb_bo
}
r->edges->beg = beg;
r->edges->end = end;
+ mrb_write_barrier(mrb, (struct RBasic*)r);
}
/*
* call-seq: