diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-07-09 17:00:56 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-07-09 17:00:56 -0700 |
| commit | 1855c7ae1dfa78264628eeed1c7c96386876fb9b (patch) | |
| tree | 902d21f2df1e4713e6133dc95dff0010ab461f28 /src | |
| parent | 15f7b64b665d2fb92e0de735703bab5434f0d9c5 (diff) | |
| parent | b9215a01f924262a22d178cae378367c6bdc75a3 (diff) | |
| download | mruby-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.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; |
