summaryrefslogtreecommitdiffhomepage
path: root/src/array.c
diff options
context:
space:
mode:
authorMasamitsu MURASE <[email protected]>2012-07-09 01:10:05 +0900
committerMasamitsu MURASE <[email protected]>2012-07-10 01:23:26 +0900
commitb9215a01f924262a22d178cae378367c6bdc75a3 (patch)
treeddab7ead9bb0e9fb13c5f6303974d06e98bdd8a2 /src/array.c
parent158e1e6fcea3e39cb0e7af3b82d11fdaee36f68a (diff)
downloadmruby-b9215a01f924262a22d178cae378367c6bdc75a3.tar.gz
mruby-b9215a01f924262a22d178cae378367c6bdc75a3.zip
Add ary_modify to prevent corrupting shared array.
Diffstat (limited to 'src/array.c')
-rw-r--r--src/array.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/array.c b/src/array.c
index d65a99cc4..ec687bbf3 100644
--- a/src/array.c
+++ b/src/array.c
@@ -739,6 +739,7 @@ mrb_ary_delete_at(mrb_state *mrb, mrb_value self)
if (index < 0) index += a->len;
if (index < 0 || a->len <= (int)index) return mrb_nil_value();
+ ary_modify(mrb, a);
val = a->ptr[index];
ptr = a->ptr + index;
@@ -850,6 +851,7 @@ mrb_ary_clear(mrb_state *mrb, mrb_value self)
struct RArray *a = mrb_ary_ptr(self);
a->len = 0;
+ ary_modify(mrb, a);
ary_shrink_capa(mrb, a);
return self;