Skip to content

Commit

Permalink
Use nextSource().readAll(blackhole()) for fast skip
Browse files Browse the repository at this point in the history
  • Loading branch information
ZacSweers committed Sep 20, 2020
1 parent 517ea36 commit 92d3aee
Showing 1 changed file with 1 addition and 43 deletions.
44 changes: 1 addition & 43 deletions moshi/src/main/java/com/squareup/moshi/JsonUtf8Reader.java
Original file line number Diff line number Diff line change
Expand Up @@ -983,49 +983,7 @@ public void skipValue() throws IOException {
if (failOnUnknown) {
throw new JsonDataException("Cannot skip unexpected " + peek() + " at " + getPath());
}
int count = 0;
do {
int p = peeked;
if (p == PEEKED_NONE) {
p = doPeek();
}

if (p == PEEKED_BEGIN_ARRAY) {
pushScope(JsonScope.EMPTY_ARRAY);
count++;
} else if (p == PEEKED_BEGIN_OBJECT) {
pushScope(JsonScope.EMPTY_OBJECT);
count++;
} else if (p == PEEKED_END_ARRAY) {
count--;
if (count < 0) {
throw new JsonDataException(
"Expected a value but was " + peek() + " at path " + getPath());
}
stackSize--;
} else if (p == PEEKED_END_OBJECT) {
count--;
if (count < 0) {
throw new JsonDataException(
"Expected a value but was " + peek() + " at path " + getPath());
}
stackSize--;
} else if (p == PEEKED_UNQUOTED_NAME || p == PEEKED_UNQUOTED) {
skipUnquotedValue();
} else if (p == PEEKED_DOUBLE_QUOTED || p == PEEKED_DOUBLE_QUOTED_NAME) {
skipQuotedValue(DOUBLE_QUOTE_OR_SLASH);
} else if (p == PEEKED_SINGLE_QUOTED || p == PEEKED_SINGLE_QUOTED_NAME) {
skipQuotedValue(SINGLE_QUOTE_OR_SLASH);
} else if (p == PEEKED_NUMBER) {
buffer.skip(peekedNumberLength);
} else if (p == PEEKED_EOF) {
throw new JsonDataException("Expected a value but was " + peek() + " at path " + getPath());
}
peeked = PEEKED_NONE;
} while (count != 0);

pathIndices[stackSize - 1]++;
pathNames[stackSize - 1] = "null";
nextSource().readAll(Okio.blackhole());
}

@Override
Expand Down

0 comments on commit 92d3aee

Please sign in to comment.