MCPcopy Create free account
hub / github.com/e2wugui/zeze / parseInt

Method parseInt

ZezeJava/ZezeJava/src/main/java/Zeze/Util/JsonReader.java:1121–1217  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1119 }
1120
1121 public int parseInt() {
1122 final byte[] buffer = buf;
1123 double d = 0;
1124 int p = pos, i = 0, n = 0, expFrac = 0, exp = 0, useDouble = 0, b, c;
1125 boolean minus = false, expMinus = false;
1126
1127 try {
1128 b = buffer[p];
1129 if (b == '-') {
1130 minus = true;
1131 b = buffer[++p];
1132 } else if (b == '+')
1133 b = buffer[++p];
1134 if (b == '0')
1135 b = buffer[++p];
1136 else if ((i = (b - '0') & 0xff) < 10) {
1137 while ((c = ((b = buffer[++p]) - '0') & 0xff) < 10) {
1138 if (i >= 0xCCC_CCCC) { // 0xCCC_CCCC * 10 = 0x7FFF_FFF8
1139 d = i;
1140 useDouble = 2;
1141 do
1142 d = d * 10 + c;
1143 while ((c = ((b = buffer[++p]) - '0') & 0xff) < 10);
1144 break;
1145 }
1146 i = i * 10 + c;
1147 n++;
1148 }
1149 } else
1150 i = 0;
1151
1152 if (b == '.') {
1153 c = ((b = buffer[++p]) - '0') & 0xff;
1154 if (useDouble == 0) {
1155 useDouble = 1;
1156 for (; c < 10; c = ((b = buffer[++p]) - '0') & 0xff) {
1157 if (i >= 0xCCC_CCCC)
1158 break;
1159 i = i * 10 + c;
1160 expFrac--;
1161 if (i != 0)
1162 n++;
1163 }
1164 d = i;
1165 useDouble = 2;
1166 }
1167 for (; c < 10; c = ((b = buffer[++p]) - '0') & 0xff) {
1168 if (n < 17) {
1169 d = d * 10 + c;
1170 expFrac--;
1171 if (d > 0)
1172 n++;
1173 }
1174 }
1175 }
1176
1177 if ((b | 0x20) == 'e') { // E:0x45 | 0x20 = e:0x65
1178 if (useDouble == 0) {

Callers 15

parse0Method · 0.95
parseList0Method · 0.95
parseMap0Method · 0.95
mainMethod · 0.80
mainMethod · 0.80
daemonProcessMethod · 0.80
RaftConfigMethod · 0.80
NodeMethod · 0.80
testCMethod · 0.80
testIntMethod · 0.80
parseMethod · 0.80
EmptyToNullIntegerMethod · 0.80

Calls 1

strtodMethod · 0.95

Tested by 7

mainMethod · 0.64
mainMethod · 0.64
daemonProcessMethod · 0.64
RaftConfigMethod · 0.64
NodeMethod · 0.64
testCMethod · 0.64
testIntMethod · 0.64