diff options
-rw-r--r-- | object.c | 10 | ||||
-rw-r--r-- | test/ruby/test_object.rb | 6 |
2 files changed, 6 insertions, 10 deletions
@@ -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 |