summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--ext/objspace/objspace_dump.c7
2 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 6b69e2144d..d16cc05ffd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
*