diff options
| author | Masamitsu MURASE <[email protected]> | 2012-07-09 01:10:05 +0900 |
|---|---|---|
| committer | Masamitsu MURASE <[email protected]> | 2012-07-10 01:23:26 +0900 |
| commit | b9215a01f924262a22d178cae378367c6bdc75a3 (patch) | |
| tree | ddab7ead9bb0e9fb13c5f6303974d06e98bdd8a2 | |
| parent | 158e1e6fcea3e39cb0e7af3b82d11fdaee36f68a (diff) | |
| download | mruby-b9215a01f924262a22d178cae378367c6bdc75a3.tar.gz mruby-b9215a01f924262a22d178cae378367c6bdc75a3.zip | |
Add ary_modify to prevent corrupting shared array.
| -rw-r--r-- | src/array.c | 2 |
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; |
