Use a conventional for loop in nextQuotedValue() to make hotspot's job easier.
This commit is contained in:
parent
bdf2cac6d4
commit
980796005f
@ -949,28 +949,29 @@ public class JsonReader implements Closeable {
|
|||||||
int l = limit;
|
int l = limit;
|
||||||
/* the index of the first character not yet appended to the builder. */
|
/* the index of the first character not yet appended to the builder. */
|
||||||
int start = p;
|
int start = p;
|
||||||
while (p < l) {
|
for (; p < l; p++) {
|
||||||
int c = buffer[p++];
|
int c = buffer[p];
|
||||||
|
|
||||||
if (c == quote) {
|
if (c == quote) {
|
||||||
pos = p;
|
pos = p + 1;
|
||||||
if (builder == null) {
|
if (builder == null) {
|
||||||
return new String(buffer, start, p - start - 1);
|
return new String(buffer, start, p - start);
|
||||||
} else {
|
} else {
|
||||||
builder.append(buffer, start, p - start - 1);
|
builder.append(buffer, start, p - start);
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (c == '\\') {
|
} else if (c == '\\') {
|
||||||
pos = p;
|
pos = p + 1;
|
||||||
if (builder == null) {
|
if (builder == null) {
|
||||||
builder = new StringBuilder();
|
builder = new StringBuilder();
|
||||||
}
|
}
|
||||||
builder.append(buffer, start, p - start - 1);
|
builder.append(buffer, start, p - start);
|
||||||
builder.append(readEscapeCharacter());
|
builder.append(readEscapeCharacter());
|
||||||
p = pos;
|
p = pos;
|
||||||
l = limit;
|
l = limit;
|
||||||
start = p;
|
start = p;
|
||||||
|
p--; // Prevent double-increment.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user