proc.c: include symbol name
* proc.c (proc_to_s): include the original symbol name in string form. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
c2310baf9a
commit
66296d3774
@ -1109,6 +1109,7 @@ VALUE rb_external_str_with_enc(VALUE str, rb_encoding *eenc);
|
|||||||
#define is_ascii_string(str) (rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT)
|
#define is_ascii_string(str) (rb_enc_str_coderange(str) == ENC_CODERANGE_7BIT)
|
||||||
#define is_broken_string(str) (rb_enc_str_coderange(str) == ENC_CODERANGE_BROKEN)
|
#define is_broken_string(str) (rb_enc_str_coderange(str) == ENC_CODERANGE_BROKEN)
|
||||||
size_t rb_str_memsize(VALUE);
|
size_t rb_str_memsize(VALUE);
|
||||||
|
VALUE rb_sym_proc_call(VALUE args, VALUE sym, int argc, VALUE *argv, VALUE passed_proc);
|
||||||
|
|
||||||
/* struct.c */
|
/* struct.c */
|
||||||
VALUE rb_struct_init_copy(VALUE copy, VALUE s);
|
VALUE rb_struct_init_copy(VALUE copy, VALUE s);
|
||||||
|
5
proc.c
5
proc.c
@ -1059,6 +1059,7 @@ proc_to_s(VALUE self)
|
|||||||
const char *cname = rb_obj_classname(self);
|
const char *cname = rb_obj_classname(self);
|
||||||
const rb_iseq_t *iseq;
|
const rb_iseq_t *iseq;
|
||||||
const char *is_lambda;
|
const char *is_lambda;
|
||||||
|
const struct vm_ifunc *ifunc;
|
||||||
|
|
||||||
GetProcPtr(self, proc);
|
GetProcPtr(self, proc);
|
||||||
iseq = proc->block.iseq;
|
iseq = proc->block.iseq;
|
||||||
@ -1073,6 +1074,10 @@ proc_to_s(VALUE self)
|
|||||||
str = rb_sprintf("#<%s:%p@%"PRIsVALUE":%d%s>", cname, (void *)self,
|
str = rb_sprintf("#<%s:%p@%"PRIsVALUE":%d%s>", cname, (void *)self,
|
||||||
iseq->body->location.path, first_lineno, is_lambda);
|
iseq->body->location.path, first_lineno, is_lambda);
|
||||||
}
|
}
|
||||||
|
else if ((ifunc = (struct vm_ifunc *)iseq)->func == rb_sym_proc_call) {
|
||||||
|
str = rb_sprintf("#<%s:%p(&%+"PRIsVALUE")%s>", cname, (void *)self,
|
||||||
|
ID2SYM((ID)ifunc->data), is_lambda);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
str = rb_sprintf("#<%s:%p%s>", cname, (void *)proc->block.iseq,
|
str = rb_sprintf("#<%s:%p%s>", cname, (void *)proc->block.iseq,
|
||||||
is_lambda);
|
is_lambda);
|
||||||
|
6
string.c
6
string.c
@ -8915,8 +8915,8 @@ sym_to_sym(VALUE sym)
|
|||||||
return sym;
|
return sym;
|
||||||
}
|
}
|
||||||
|
|
||||||
static VALUE
|
VALUE
|
||||||
sym_call(VALUE args, VALUE sym, int argc, VALUE *argv, VALUE passed_proc)
|
rb_sym_proc_call(VALUE args, VALUE sym, int argc, VALUE *argv, VALUE passed_proc)
|
||||||
{
|
{
|
||||||
VALUE obj;
|
VALUE obj;
|
||||||
|
|
||||||
@ -8959,7 +8959,7 @@ sym_to_proc(VALUE sym)
|
|||||||
return aryp[index + 1];
|
return aryp[index + 1];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
proc = rb_proc_new(sym_call, (VALUE)id);
|
proc = rb_proc_new(rb_sym_proc_call, (VALUE)id);
|
||||||
rb_block_clear_env_self(proc);
|
rb_block_clear_env_self(proc);
|
||||||
aryp[index] = sym;
|
aryp[index] = sym;
|
||||||
aryp[index + 1] = proc;
|
aryp[index + 1] = proc;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user