summaryrefslogtreecommitdiff
path: root/java/src/json/ext/Parser.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/json/ext/Parser.java')
-rw-r--r--java/src/json/ext/Parser.java16
1 files changed, 8 insertions, 8 deletions
diff --git a/java/src/json/ext/Parser.java b/java/src/json/ext/Parser.java
index 1ff25a6..579b047 100644
--- a/java/src/json/ext/Parser.java
+++ b/java/src/json/ext/Parser.java
@@ -1608,12 +1608,12 @@ static final int JSON_array_en_main = 1;
// this is guaranteed to be a RubyArray due to the earlier
// allocator test at OptionsReader#getClass
- RubyArray result;
- if (parser.arrayClass != getRuntime().getArray()) {
- result = (RubyArray)parser.arrayClass.newInstance(context,
- IRubyObject.NULL_ARRAY, Block.NULL_BLOCK);
- } else {
+ IRubyObject result;
+ if (parser.arrayClass == getRuntime().getArray()) {
result = RubyArray.newArray(getRuntime());
+ } else {
+ result = parser.arrayClass.newInstance(context,
+ IRubyObject.NULL_ARRAY, Block.NULL_BLOCK);
}
@@ -1712,10 +1712,10 @@ case 1:
p--;
{ p += 1; _goto_targ = 5; if (true) continue _goto;}
} else {
- if (parser.arrayClass != getRuntime().getArray()) {
- result.callMethod(context, "<<", res.result);
+ if (parser.arrayClass == getRuntime().getArray()) {
+ ((RubyArray)result).append(res.result);
} else {
- result.append(res.result);
+ result.callMethod(context, "<<", res.result);
}
{p = (( res.p))-1;}
}