diff options
-rw-r--r-- | ext/objspace/objspace_dump.c | 14 | ||||
-rw-r--r-- | test/objspace/test_objspace.rb | 56 |
2 files changed, 7 insertions, 63 deletions
diff --git a/ext/objspace/objspace_dump.c b/ext/objspace/objspace_dump.c index 092fa6f68e..afc41892d1 100644 --- a/ext/objspace/objspace_dump.c +++ b/ext/objspace/objspace_dump.c @@ -172,9 +172,9 @@ reachable_object_i(VALUE ref, void *data) return; if (dc->cur_obj_references == 0) - dump_append(dc, ", \"references\":[\"0x%"PRIxPTR"\"", ref); + dump_append(dc, ", \"references\":[\"%p\"", (void *)ref); else - dump_append(dc, ", \"0x%"PRIxPTR"\"", ref); + dump_append(dc, ", \"%p\"", (void *)ref); dc->cur_obj_references++; } @@ -235,10 +235,10 @@ dump_object(VALUE obj, struct dump_config *dc) if (dc->cur_obj == dc->string) return; - dump_append(dc, "{\"address\":\"0x%"PRIxPTR"\", \"type\":\"%s\"", obj, obj_type(obj)); + dump_append(dc, "{\"address\":\"%p\", \"type\":\"%s\"", (void *)obj, obj_type(obj)); if (dc->cur_obj_klass) - dump_append(dc, ", \"class\":\"0x%"PRIxPTR"\"", dc->cur_obj_klass); + dump_append(dc, ", \"class\":\"%p\"", (void *)dc->cur_obj_klass); if (rb_obj_frozen_p(obj)) dump_append(dc, ", \"frozen\":true"); @@ -274,7 +274,7 @@ dump_object(VALUE obj, struct dump_config *dc) case T_HASH: dump_append(dc, ", \"size\":%"PRIuSIZE, (size_t)RHASH_SIZE(obj)); if (FL_TEST(obj, HASH_PROC_DEFAULT)) - dump_append(dc, ", \"default\":\"0x%"PRIxPTR"\"", RHASH_IFNONE(obj)); + dump_append(dc, ", \"default\":\"%p\"", (void *)RHASH_IFNONE(obj)); break; case T_ARRAY: @@ -363,9 +363,9 @@ root_obj_i(const char *category, VALUE obj, void *data) if (dc->root_category != NULL && category != dc->root_category) dump_append(dc, "]}\n"); if (dc->root_category == NULL || category != dc->root_category) - dump_append(dc, "{\"type\":\"ROOT\", \"root\":\"%s\", \"references\":[\"0x%"PRIxPTR"\"", category, obj); + dump_append(dc, "{\"type\":\"ROOT\", \"root\":\"%s\", \"references\":[\"%p\"", category, (void *)obj); else - dump_append(dc, ", \"0x%"PRIxPTR"\"", obj); + dump_append(dc, ", \"%p\"", (void *)obj); dc->root_category = category; dc->roots++; diff --git a/test/objspace/test_objspace.rb b/test/objspace/test_objspace.rb index 947170203a..0e1ad327b9 100644 --- a/test/objspace/test_objspace.rb +++ b/test/objspace/test_objspace.rb @@ -318,62 +318,6 @@ class TestObjSpace < Test::Unit::TestCase end end - def test_dump_addresses_match_dump_all_addresses - assert_in_out_err(%w[-robjspace], "#{<<-"begin;"}\n#{<<-'end;'}") do |output, error| - begin; - def dump_my_heap_please - obj = Object.new - puts ObjectSpace.dump(obj) - ObjectSpace.dump_all(output: $stdout) - end - - dump_my_heap_please - end; - needle = JSON.parse(output.first) - addr = needle['address'] - found = output.drop(1).find { |l| JSON.parse(l)['address'] == addr } - assert found, "object #{addr} should be findable in full heap dump" - end - end - - def test_dump_class_addresses_match_dump_all_addresses - assert_in_out_err(%w[-robjspace], "#{<<-"begin;"}\n#{<<-'end;'}") do |output, error| - begin; - def dump_my_heap_please - obj = Object.new - puts ObjectSpace.dump(obj) - ObjectSpace.dump_all(output: $stdout) - end - - dump_my_heap_please - end; - needle = JSON.parse(output.first) - addr = needle['class'] - found = output.drop(1).find { |l| JSON.parse(l)['address'] == addr } - assert found, "object #{addr} should be findable in full heap dump" - end - end - - def test_dump_reference_addresses_match_dump_all_addresses - assert_in_out_err(%w[-robjspace], "#{<<-"begin;"}\n#{<<-'end;'}") do |output, error| - begin; - def dump_my_heap_please - obj = Object.new - obj2 = Object.new - obj2.instance_variable_set(:@ref, obj) - puts ObjectSpace.dump(obj) - ObjectSpace.dump_all(output: $stdout) - end - - dump_my_heap_please - end; - needle = JSON.parse(output.first) - addr = needle['address'] - found = output.drop(1).find { |l| (JSON.parse(l)['references'] || []).include? addr } - assert found, "object #{addr} should be findable in full heap dump" - end - end - def test_dump_all entry = /"bytesize":11, "value":"TEST STRING", "encoding":"UTF-8", "file":"-", "line":4, "method":"dump_my_heap_please", "generation":/ |