range.c: check if range modifiable

* range.c (range_modify): frozen object cannot be modified.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-11-10 10:39:51 +00:00
parent 04a4fd8957
commit 1a7aba1b47
2 changed files with 7 additions and 0 deletions

View file

@ -80,6 +80,7 @@ rb_range_new(VALUE beg, VALUE end, int exclude_end)
static void
range_modify(VALUE range)
{
rb_check_frozen(range);
/* Ranges are immutable, so that they should be initialized only once. */
if (RANGE_EXCL(range) != Qnil) {
rb_name_err_raise("`initialize' called twice", range, ID2SYM(idInitialize));