iseq.c: append local var index to name
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
affd2b76c8
commit
c6e50e513c
10
iseq.c
10
iseq.c
@ -1498,18 +1498,24 @@ local_var_name(const rb_iseq_t *diseq, VALUE level, VALUE op)
|
|||||||
VALUE i;
|
VALUE i;
|
||||||
VALUE name;
|
VALUE name;
|
||||||
ID lid;
|
ID lid;
|
||||||
|
int idx;
|
||||||
|
|
||||||
for (i = 0; i < level; i++) {
|
for (i = 0; i < level; i++) {
|
||||||
diseq = diseq->body->parent_iseq;
|
diseq = diseq->body->parent_iseq;
|
||||||
}
|
}
|
||||||
lid = diseq->body->local_table[diseq->body->local_table_size - op - 1];
|
idx = diseq->body->local_table_size - (int)op - 1;
|
||||||
|
lid = diseq->body->local_table[idx];
|
||||||
name = rb_id2str(lid);
|
name = rb_id2str(lid);
|
||||||
if (!name) {
|
if (!name) {
|
||||||
name = rb_sprintf("?%d", diseq->body->local_table_size - (int)op);
|
name = rb_str_new_cstr("?");
|
||||||
}
|
}
|
||||||
else if (!rb_str_symname_p(name)) {
|
else if (!rb_str_symname_p(name)) {
|
||||||
name = rb_str_inspect(name);
|
name = rb_str_inspect(name);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
name = rb_str_dup(name);
|
||||||
|
}
|
||||||
|
rb_str_catf(name, "@%d", idx);
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user