diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2016-12-12 00:49:23 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2016-12-12 00:49:23 +0900 |
| commit | 1fbad32f8bce2a10c591d0e44796bc34913a0e8c (patch) | |
| tree | 8ba3d7bd9992f0097f99a034012565adb43c4d4a /src/array.c | |
| parent | 3cc913490b708fe4d0e78e48f86e6e39cf3d8576 (diff) | |
| parent | 10bb7ad693e7c7443de924a39c1fedb4461108ba (diff) | |
| download | mruby-1fbad32f8bce2a10c591d0e44796bc34913a0e8c.tar.gz mruby-1fbad32f8bce2a10c591d0e44796bc34913a0e8c.zip | |
Merge pull request #3340 from k0kubun/object-freeze
Implement Object#freeze
Diffstat (limited to 'src/array.c')
| -rw-r--r-- | src/array.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/array.c b/src/array.c index f6599bd5b..c6bac7b47 100644 --- a/src/array.c +++ b/src/array.c @@ -108,6 +108,10 @@ ary_fill_with_nil(mrb_value *ptr, mrb_int size) static void ary_modify(mrb_state *mrb, struct RArray *a) { + if (RBASIC_FROZEN_P(a)) { + mrb_raise(mrb, E_RUNTIME_ERROR, "can't modify frozen array"); + } + if (ARY_SHARED_P(a)) { mrb_shared_array *shared = a->aux.shared; |
