diff options
| -rw-r--r-- | src/array.c | 2 | ||||
| -rw-r--r-- | test/t/array.rb | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/array.c b/src/array.c index ae2cca70c..f3d29faec 100644 --- a/src/array.c +++ b/src/array.c @@ -451,7 +451,7 @@ mrb_ary_pop(mrb_state *mrb, mrb_value ary) { struct RArray *a = mrb_ary_ptr(ary); - ary_modify(mrb, a); + ary_modify_check(mrb, a); if (a->len == 0) return mrb_nil_value(); return a->ptr[--a->len]; } diff --git a/test/t/array.rb b/test/t/array.rb index 8df8dedb4..7c11265a4 100644 --- a/test/t/array.rb +++ b/test/t/array.rb @@ -237,6 +237,8 @@ assert('Array#pop', '15.2.12.5.21') do assert_nil([].pop) assert_equal([1,2], a) assert_equal(3, b) + + assert_raise(RuntimeError) { [].freeze.pop } end assert('Array#push', '15.2.12.5.22') do |
