0
@@ -96,8 +96,9 @@ class GeneratorMethodsLoader {
0
* @return The JSON representation of the Hash
0
private RubyString simpleTransform(RubyHash self) {
0
- int preSize = 2 + Math.max(self.size() * 8, 0);
0
- final RubyString result = self.getRuntime().newString(new ByteList(preSize));
0
+ final int preSize = 2 + Math.max(self.size() * 12, 0);
0
+ final RubyString result =
0
+ self.getRuntime().newString(new ByteList(preSize));
0
self.visitAll(new RubyHash.Visitor() {
0
private boolean firstPair = true;
0
@@ -112,7 +113,7 @@ class GeneratorMethodsLoader {
0
RubyString jsonKey = Utils.toJson(key.asString());
0
- result.cat(
((RubyString)jsonKey).getByteList());
0
+ result.cat(
jsonKey.getByteList());
0
result.infectBy(jsonKey);
0
@@ -126,9 +127,7 @@ class GeneratorMethodsLoader {
0
private RubyString transform(RubyHash self, final GeneratorState state, int depth) {
0
- Ruby runtime = self.getRuntime();
0
- int preSize = 2 + Math.max(self.size() * 8, 0);
0
- final RubyString result = runtime.newString(new ByteList(preSize));
0
+ final Ruby runtime = self.getRuntime();
0
final ByteList objectNl = state.object_nl_get().getByteList();
0
final byte[] indent = Utils.repeat(state.indent_get().getByteList(), depth + 1);
0
@@ -136,10 +135,14 @@ class GeneratorMethodsLoader {
0
final ByteList space = state.space_get().getByteList();
0
final RubyFixnum subDepth = runtime.newFixnum(depth + 1);
0
+ final int preSize = 2 + self.size() * (12 + indent.length + spaceBefore.length() + space.length());
0
+ final RubyString result = runtime.newString(new ByteList(preSize));
0
self.visitAll(new RubyHash.Visitor() {
0
private boolean firstPair = true;
0
public void visit(IRubyObject key, IRubyObject value) {
0
// XXX key == Qundef???
0
@@ -150,9 +153,8 @@ class GeneratorMethodsLoader {
0
- if (objectNl.length() != 0) {
0
+ if (objectNl.length() != 0) result.cat(indent);
0
RubyString keyJson = Utils.toJson(key.asString(), state, subDepth);
0
result.cat(keyJson.getByteList());
0
result.infectBy(keyJson);
Comments
No one has commented yet.