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:
parent
caada48ee8
commit
2ce7328dea
4 changed files with 11 additions and 5 deletions
|
@ -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
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
5
error.c
5
error.c
|
@ -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,
|
||||
|
|
Loading…
Add table
Reference in a new issue