Refactor prefix array & loop logic, use if-s instead (#1505)

This commit is contained in:
Degubi 2019-10-04 22:45:06 +02:00 committed by inder123
parent 236533ebd6
commit 9bf25c2eb6

View File

@ -189,8 +189,6 @@ import java.util.Arrays;
* @since 1.6 * @since 1.6
*/ */
public class JsonReader implements Closeable { public class JsonReader implements Closeable {
/** The only non-execute prefix this parser permits */
private static final char[] NON_EXECUTE_PREFIX = ")]}'\n".toCharArray();
private static final long MIN_INCOMPLETE_INTEGER = Long.MIN_VALUE / 10; private static final long MIN_INCOMPLETE_INTEGER = Long.MIN_VALUE / 10;
private static final int PEEKED_NONE = 0; private static final int PEEKED_NONE = 0;
@ -1572,18 +1570,18 @@ public class JsonReader implements Closeable {
nextNonWhitespace(true); nextNonWhitespace(true);
pos--; pos--;
if (pos + NON_EXECUTE_PREFIX.length > limit && !fillBuffer(NON_EXECUTE_PREFIX.length)) { int p = pos;
if (p + 5 > limit && !fillBuffer(5)) {
return; return;
} }
for (int i = 0; i < NON_EXECUTE_PREFIX.length; i++) { char[] buf = buffer;
if (buffer[pos + i] != NON_EXECUTE_PREFIX[i]) { if(buf[p] != ')' || buf[p + 1] != ']' || buf[p + 2] != '}' || buf[p + 3] != '\'' || buf[p + 4] != '\n') {
return; // not a security token! return; // not a security token!
} }
}
// we consumed a security token! // we consumed a security token!
pos += NON_EXECUTE_PREFIX.length; pos += 5;
} }
static { static {