summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2012-07-09 17:00:56 -0700
committerYukihiro "Matz" Matsumoto <[email protected]>2012-07-09 17:00:56 -0700
commit1855c7ae1dfa78264628eeed1c7c96386876fb9b (patch)
tree902d21f2df1e4713e6133dc95dff0010ab461f28 /src
parent15f7b64b665d2fb92e0de735703bab5434f0d9c5 (diff)
parentb9215a01f924262a22d178cae378367c6bdc75a3 (diff)
downloadmruby-1855c7ae1dfa78264628eeed1c7c96386876fb9b.tar.gz
mruby-1855c7ae1dfa78264628eeed1c7c96386876fb9b.zip
Merge pull request #359 from masamitsu-murase/modify_array_clear
Add ary_modify to prevent corrupting shared array.
Diffstat (limited to 'src')
-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;