1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

id.def: internal IDs

* defs/id.def: move internal IDs for frozen-string-literal-debug.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2015-10-27 08:06:58 +00:00
parent caada48ee8
commit 2ce7328dea
4 changed files with 11 additions and 5 deletions

View file

@ -1,3 +1,7 @@
Tue Oct 27 17:06:55 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* defs/id.def: move internal IDs for frozen-string-literal-debug.
Tue Oct 27 16:41:05 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* error.c (rb_error_frozen_object): use rb_attr_get instead of

View file

@ -5116,8 +5116,8 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
}
else {
VALUE str = rb_str_dup(node->nd_lit);
rb_iv_set(str, "__object_created_path__", iseq->body->location.path);
rb_iv_set(str, "__object_created_line__", INT2FIX(line));
rb_ivar_set(str, id_debug_created_path, iseq->body->location.path);
rb_ivar_set(str, id_debug_created_line, INT2FIX(line));
ADD_INSN1(ret, line, putobject, rb_obj_freeze(str));
}
}

View file

@ -60,6 +60,9 @@ firstline, predefined = __LINE__+1, %[\
core#hash_merge_ary
core#hash_merge_ptr
core#hash_merge_kwd
debug#created_path
debug#created_line
]
class KeywordError < RuntimeError

View file

@ -2227,10 +2227,9 @@ void
rb_error_frozen_object(VALUE frozen_obj)
{
VALUE path, line;
ID created_path, created_line;
const ID created_path = id_debug_created_path;
const ID created_line = id_debug_created_line;
CONST_ID(created_path, "__object_created_path__");
CONST_ID(created_line, "__object_created_line__");
if (!NIL_P(path = rb_attr_get(frozen_obj, created_path)) &&
!NIL_P(line = rb_attr_get(frozen_obj, created_line))) {
rb_raise(rb_eRuntimeError, "can't modify frozen %"PRIsVALUE", created at %"PRIsVALUE":%"PRIsVALUE,