diff options
author | tmm1 <tmm1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-11-26 05:27:22 +0000 |
---|---|---|
committer | tmm1 <tmm1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-11-26 05:27:22 +0000 |
commit | adcd0174b97e09f3f1f1651f9d2399167ac313ee (patch) | |
tree | dec21f5fb66fe7a6e67b9d15eddcaf1242e34d0e | |
parent | 0791c940ad9c4749e72accb91c7e22e684fde668 (diff) | |
download | ruby-adcd0174b97e09f3f1f1651f9d2399167ac313ee.tar.gz |
* ext/objspace/objspace_dump.c (dump_append_string_value): Escape
control characters for strict json parsers.
* ext/objspace/objspace_dump.c (objspace_dump): Document File/IO
output option.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | ext/objspace/objspace_dump.c | 7 |
2 files changed, 13 insertions, 1 deletions
@@ -1,3 +1,10 @@ +Tue Nov 26 14:23:17 2013 Aman Gupta <ruby@tmm1.net> + + * ext/objspace/objspace_dump.c (dump_append_string_value): Escape + control characters for strict json parsers. + * ext/objspace/objspace_dump.c (objspace_dump): Document File/IO + output option. + Tue Nov 26 11:43:19 2013 Masaki Matsushita <glass.saga@gmail.com> * ruby_atomic.h: use __atomic builtin functions supported by GCC. diff --git a/ext/objspace/objspace_dump.c b/ext/objspace/objspace_dump.c index 7b0992c4ff..a9906b8538 100644 --- a/ext/objspace/objspace_dump.c +++ b/ext/objspace/objspace_dump.c @@ -82,7 +82,10 @@ dump_append_string_value(struct dump_config *dc, VALUE obj) dump_append(dc, "\\r"); break; default: - dump_append(dc, "%c", c); + if (c <= 0x1f) + dump_append(dc, "\\u%04d", c); + else + dump_append(dc, "%c", c); } } dump_append(dc, "\""); @@ -362,6 +365,8 @@ objspace_dump(int argc, VALUE *argv, VALUE os) * ObjectSpace.dump_all([output: :file]) # => #<File:/tmp/rubyheap20131125-88469-laoj3v.json> * ObjectSpace.dump_all(output: :stdout) # => nil * ObjectSpace.dump_all(output: :string) # => "{...}\n{...}\n..." + * ObjectSpace.dump_all(output: + * File.open('heap.json','w')) # => #<File:heap.json> * * Dump the contents of the ruby heap as JSON. * |