aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--object.c10
-rw-r--r--test/ruby/test_object.rb6
2 files changed, 6 insertions, 10 deletions
diff --git a/object.c b/object.c
index 567dec1b10..446d52a1d6 100644
--- a/object.c
+++ b/object.c
@@ -489,8 +489,6 @@ inspect_i(st_data_t k, st_data_t v, st_data_t a)
ID id = (ID)k;
VALUE value = (VALUE)v;
VALUE str = (VALUE)a;
- VALUE str2;
- const char *ivname;
/* need not to show internal data */
if (CLASS_OF(value) == 0) return ST_CONTINUE;
@@ -502,12 +500,8 @@ inspect_i(st_data_t k, st_data_t v, st_data_t a)
else {
rb_str_cat2(str, ", ");
}
- ivname = rb_id2name(id);
- rb_str_cat2(str, ivname);
- rb_str_cat2(str, "=");
- str2 = rb_inspect(value);
- rb_str_append(str, str2);
- OBJ_INFECT(str, str2);
+ rb_str_catf(str, "%"PRIsVALUE"=%+"PRIsVALUE,
+ rb_id2str(id), value);
return ST_CONTINUE;
}
diff --git a/test/ruby/test_object.rb b/test/ruby/test_object.rb
index 0fe9471fa6..94a6e9d201 100644
--- a/test/ruby/test_object.rb
+++ b/test/ruby/test_object.rb
@@ -758,10 +758,12 @@ class TestObject < Test::Unit::TestCase
def initialize
@\u{3044} = 42
end
- new.inspect
+ new
end
EOS
- assert_match(/\bInspect\u{3042}:.* @\u{3044}=42\b/, x)
+ assert_match(/\bInspect\u{3042}:.* @\u{3044}=42\b/, x.inspect)
+ x.instance_variable_set("@\u{3046}".encode(Encoding::EUC_JP), 6)
+ assert_match(/@\u{3046}=6\b/, x.inspect)
end
def test_singleton_class