summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-24 16:38:44 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-12-24 16:38:44 +0000
commit6ca558d6ab8e2553b32a415537c484bffd9b189c (patch)
treecbea16e53963e2f2a0ad8bb830f07fc43f458eb1
parenta04a812ed0aa7424ea1f40756402d1f199a43308 (diff)
* proc.c (method_name): preserve Symbol's encoding.
* numeric.c (fix_id2name): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--compile.c4
-rw-r--r--iseq.c2
-rw-r--r--numeric.c4
-rw-r--r--proc.c2
-rw-r--r--struct.c4
-rw-r--r--variable.c6
-rw-r--r--vm.c2
8 files changed, 17 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index 9f3ebcff92..6b1eeed566 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Dec 25 01:38:04 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * proc.c (method_name): preserve Symbol's encoding.
+
+ * numeric.c (fix_id2name): ditto.
+
Tue Dec 25 01:19:18 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
* include/ruby/encoding.h (rb_enc_left_char_head): new utility macro.
diff --git a/compile.c b/compile.c
index b17eb253f3..c00ea73b8e 100644
--- a/compile.c
+++ b/compile.c
@@ -4077,7 +4077,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
}
case NODE_DEFN:{
VALUE iseqval = NEW_ISEQVAL(node->nd_defn,
- rb_str_new2(rb_id2name(node->nd_mid)),
+ rb_str_dup(rb_id2str(node->nd_mid)),
ISEQ_TYPE_METHOD);
debugp_param("defn/iseq", iseqval);
@@ -4093,7 +4093,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
}
case NODE_DEFS:{
VALUE iseqval = NEW_ISEQVAL(node->nd_defn,
- rb_str_new2(rb_id2name(node->nd_mid)),
+ rb_str_dup(rb_id2str(node->nd_mid)),
ISEQ_TYPE_METHOD);
debugp_param("defs/iseq", iseqval);
diff --git a/iseq.c b/iseq.c
index c478062822..03d20599b9 100644
--- a/iseq.c
+++ b/iseq.c
@@ -665,7 +665,7 @@ insn_operand_intern(rb_iseq_t *iseq,
case TS_GENTRY:
{
struct global_entry *entry = (struct global_entry *)op;
- ret = rb_str_new2(rb_id2name(entry->id));
+ ret = rb_str_dup(rb_id2str(entry->id));
}
break;
diff --git a/numeric.c b/numeric.c
index 7881531340..6ba8686bff 100644
--- a/numeric.c
+++ b/numeric.c
@@ -2809,8 +2809,8 @@ fix_abs(VALUE fix)
static VALUE
fix_id2name(VALUE fix)
{
- const char *name = rb_id2name(FIX2UINT(fix));
- if (name) return rb_str_new2(name);
+ VALUE name = rb_id2str(FIX2UINT(fix));
+ if (name) return rb_str_dup(name);
return Qnil;
}
diff --git a/proc.c b/proc.c
index d9eca588ab..a609d9ebd0 100644
--- a/proc.c
+++ b/proc.c
@@ -858,7 +858,7 @@ method_name(VALUE obj)
struct METHOD *data;
Data_Get_Struct(obj, struct METHOD, data);
- return rb_str_new2(rb_id2name(data->id));
+ return rb_str_dup(rb_id2str(data->id));
}
/*
diff --git a/struct.c b/struct.c
index 1bca90b633..2fadd47dfc 100644
--- a/struct.c
+++ b/struct.c
@@ -498,7 +498,6 @@ inspect_struct(VALUE s, VALUE dummy, int recur)
for (i=0; i<RSTRUCT_LEN(s); i++) {
VALUE slot;
ID id;
- const char *p;
if (i > 0) {
rb_str_cat2(str, ", ");
@@ -506,8 +505,7 @@ inspect_struct(VALUE s, VALUE dummy, int recur)
slot = RARRAY_PTR(members)[i];
id = SYM2ID(slot);
if (rb_is_local_id(id) || rb_is_const_id(id)) {
- p = rb_id2name(id);
- rb_str_cat2(str, p);
+ rb_str_append(str, rb_id2str(id));
}
else {
rb_str_append(str, rb_inspect(slot));
diff --git a/variable.c b/variable.c
index c8919b7bad..90ea33f381 100644
--- a/variable.c
+++ b/variable.c
@@ -45,7 +45,7 @@ fc_path(struct fc_result *fc, ID name)
{
VALUE path, tmp;
- path = rb_str_new2(rb_id2name(name));
+ path = rb_str_dup(rb_id2str(name));
while (fc) {
if (fc->track == rb_cObject) break;
if (RCLASS_IV_TBL(fc->track) &&
@@ -56,7 +56,7 @@ fc_path(struct fc_result *fc, ID name)
path = tmp;
break;
}
- tmp = rb_str_new2(rb_id2name(fc->name));
+ tmp = rb_str_dup(rb_id2str(fc->name));
rb_str_cat2(tmp, "::");
rb_str_append(tmp, path);
path = tmp;
@@ -148,7 +148,7 @@ classname(VALUE klass)
if (!st_lookup(RCLASS_IV_TBL(klass), classid, &path)) {
return find_class_path(klass);
}
- path = rb_str_new2(rb_id2name(SYM2ID(path)));
+ path = rb_str_dup(rb_id2str(SYM2ID(path)));
OBJ_FREEZE(path);
st_insert(RCLASS_IV_TBL(klass), classpath, path);
st_delete(RCLASS_IV_TBL(klass), (st_data_t*)&classid, 0);
diff --git a/vm.c b/vm.c
index e3d7ff4bb8..9eda8014c0 100644
--- a/vm.c
+++ b/vm.c
@@ -286,7 +286,7 @@ collect_local_variables_in_env(rb_env_t *env, VALUE ary)
for (i = 0; i < env->block.iseq->local_table_size; i++) {
ID lid = env->block.iseq->local_table[i];
if (lid) {
- rb_ary_push(ary, rb_str_new2(rb_id2name(lid)));
+ rb_ary_push(ary, rb_str_dup(rb_id2str(lid)));
}
}
if (env->prev_envval) {