in core/src/main/java/com/alibaba/fastjson2/reader/ObjectReaderCreatorASM.java [2202:2905]
private void genRead243(
ObjectReadContext context,
boolean fieldBased,
MethodWriterContext mwc,
int OBJECT,
Label L_FOR_INC,
Label hashCode64Start
) {
String classNameType = context.classNameType;
FieldReader[] fieldReaderArray = context.fieldReaders;
boolean jsonb = mwc.jsonb;
MethodWriter mw = mwc.mw;
IdentityHashMap<FieldReader, Integer> readerIndexMap = new IdentityHashMap<>();
Map<Integer, List<FieldReader>> name0Map = new TreeMap<>();
for (int i = 0; i < fieldReaderArray.length; ++i) {
FieldReader fieldReader = fieldReaderArray[i];
readerIndexMap.put(fieldReader, i);
byte[] name0Bytes = new byte[4];
if (jsonb) {
byte[] fieldNameJSONB = JSONB.toBytes(fieldReader.fieldName);
System.arraycopy(fieldNameJSONB, 0, name0Bytes, 0, Math.min(4, fieldNameJSONB.length));
} else {
byte[] fieldName = fieldReader.fieldName.getBytes(StandardCharsets.UTF_8);
name0Bytes[0] = '"';
if (fieldName.length == 2) {
System.arraycopy(fieldName, 0, name0Bytes, 1, 2);
name0Bytes[3] = '"';
} else {
System.arraycopy(fieldName, 0, name0Bytes, 1, 3);
}
}
int name0 = UNSAFE.getInt(name0Bytes, ARRAY_BYTE_BASE_OFFSET);
List<FieldReader> fieldReaders = name0Map.get(name0);
if (fieldReaders == null) {
fieldReaders = new ArrayList<>();
name0Map.put(name0, fieldReaders);
}
fieldReaders.add(fieldReader);
}
Label dflt = new Label();
int[] switchKeys = new int[name0Map.size()];
Label[] labels = new Label[name0Map.size()];
{
Iterator it = name0Map.keySet().iterator();
for (int i = 0; i < labels.length; i++) {
labels[i] = new Label();
switchKeys[i] = (Integer) it.next();
}
}
mw.aload(JSON_READER);
mw.invokevirtual(TYPE_JSON_READER, "getRawInt", "()I");
mw.visitLookupSwitchInsn(dflt, switchKeys, labels);
for (int i = 0; i < labels.length; i++) {
mw.visitLabel(labels[i]);
int name0 = switchKeys[i];
List<FieldReader> fieldReaders = name0Map.get(name0);
for (int j = 0; j < fieldReaders.size(); j++) {
Label nextJ = null;
if (j + 1 != fieldReaders.size()) {
nextJ = new Label();
}
FieldReader fieldReader = fieldReaders.get(j);
int fieldReaderIndex = readerIndexMap.get(fieldReader);
byte[] fieldName = fieldReader.fieldName.getBytes(StandardCharsets.UTF_8);
int fieldNameLength = fieldName.length;
switch (fieldNameLength) {
case 2:
mw.aload(JSON_READER);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match2", "()Z");
break;
case 3:
mw.aload(JSON_READER);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match3", "()Z");
break;
case 4: {
mw.aload(JSON_READER);
mw.iconst_n(fieldName[3]);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match4", "(B)Z");
break;
}
case 5: {
byte[] bytes4 = new byte[4];
bytes4[0] = fieldName[3];
bytes4[1] = fieldName[4];
bytes4[2] = '"';
bytes4[3] = ':';
int name1 = UNSAFE.getInt(bytes4, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name1 &= 0xFFFF;
}
mw.aload(JSON_READER);
mw.iconst_n(name1);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match5", "(I)Z");
break;
}
case 6: {
byte[] bytes4 = new byte[4];
bytes4[0] = fieldName[3];
bytes4[1] = fieldName[4];
bytes4[2] = fieldName[5];
bytes4[3] = '"';
int name1 = UNSAFE.getInt(bytes4, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name1 &= 0xFFFFFF;
}
mw.aload(JSON_READER);
mw.iconst_n(name1);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match6", "(I)Z");
break;
}
case 7: {
int name1 = UNSAFE.getInt(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
mw.aload(JSON_READER);
mw.iconst_n(name1);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match7", "(I)Z");
break;
}
case 8: {
int name1 = UNSAFE.getInt(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
mw.aload(JSON_READER);
mw.iconst_n(name1);
mw.iconst_n(fieldName[7]);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match8", "(IB)Z");
break;
}
case 9: {
byte[] bytes8 = new byte[8];
System.arraycopy(fieldName, 3, bytes8, 0, 6);
bytes8[6] = '"';
bytes8[7] = ':';
long name1 = UNSAFE.getLong(bytes8, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name1 &= 0xFFFFFFFFFFFFL;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match9", "(J)Z");
break;
}
case 10: {
byte[] bytes8 = new byte[8];
System.arraycopy(fieldName, 3, bytes8, 0, 7);
bytes8[7] = '"';
long name1 = UNSAFE.getLong(bytes8, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name1 &= 0xFFFFFFFFFFFFFFL;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match10", "(J)Z");
break;
}
case 11: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match11", "(J)Z");
break;
}
case 12: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.iconst_n(fieldName[11]);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match12", "(JB)Z");
break;
}
case 13: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
byte[] bytes4 = new byte[4];
bytes4[0] = fieldName[11];
bytes4[1] = fieldName[12];
bytes4[2] = '"';
bytes4[3] = ':';
int name2 = UNSAFE.getInt(bytes4, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name2 &= 0xFFFF;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.iconst_n(name2);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match13", "(JI)Z");
break;
}
case 14: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
byte[] bytes4 = new byte[4];
bytes4[0] = fieldName[11];
bytes4[1] = fieldName[12];
bytes4[2] = fieldName[13];
bytes4[3] = '"';
int name2 = UNSAFE.getInt(bytes4, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name2 &= 0xFFFFFF;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.iconst_n(name2);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match14", "(JI)Z");
break;
}
case 15: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
int name2 = UNSAFE.getInt(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.iconst_n(name2);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match15", "(JI)Z");
break;
}
case 16: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
int name2 = UNSAFE.getInt(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.iconst_n(name2);
mw.visitLdcInsn(fieldName[15]);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match16", "(JIB)Z");
break;
}
case 17: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
byte[] bytes8 = new byte[8];
System.arraycopy(fieldName, 11, bytes8, 0, 6);
bytes8[6] = '"';
bytes8[7] = ':';
long name2 = UNSAFE.getLong(bytes8, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name2 &= 0xFFFFFFFFFFFFL;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match17", "(JJ)Z");
break;
}
case 18: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
byte[] bytes8 = new byte[8];
System.arraycopy(fieldName, 11, bytes8, 0, 7);
bytes8[7] = '"';
long name2 = UNSAFE.getLong(bytes8, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name2 &= 0xFFFFFFFFFFFFFFL;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match18", "(JJ)Z");
break;
}
case 19: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match19", "(JJ)Z");
break;
}
case 20: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.iconst_n(fieldName[19]);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match20", "(JJB)Z");
break;
}
case 21: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
byte[] bytes4 = new byte[4];
bytes4[0] = fieldName[19];
bytes4[1] = fieldName[20];
bytes4[2] = '"';
bytes4[3] = ':';
int name3 = UNSAFE.getInt(bytes4, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name3 &= 0xFFFF;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.iconst_n(name3);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match21", "(JJI)Z");
break;
}
case 22: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
byte[] bytes4 = new byte[4];
bytes4[0] = fieldName[19];
bytes4[1] = fieldName[20];
bytes4[2] = fieldName[21];
bytes4[3] = '"';
int name3 = UNSAFE.getInt(bytes4, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name3 &= 0xFFFFFF;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.iconst_n(name3);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match22", "(JJI)Z");
break;
}
case 23: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
int name3 = UNSAFE.getInt(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.iconst_n(name3);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match23", "(JJI)Z");
break;
}
case 24: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
int name3 = UNSAFE.getInt(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.iconst_n(name3);
mw.visitLdcInsn(fieldName[23]);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match24", "(JJIB)Z");
break;
}
case 25: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
byte[] bytes8 = new byte[8];
System.arraycopy(fieldName, 19, bytes8, 0, 6);
bytes8[6] = '"';
bytes8[7] = ':';
long name3 = UNSAFE.getLong(bytes8, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name3 &= 0xFFFFFFFFFFFFL;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match25", "(JJJ)Z");
break;
}
case 26: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
byte[] bytes8 = new byte[8];
System.arraycopy(fieldName, 19, bytes8, 0, 7);
bytes8[7] = '"';
long name3 = UNSAFE.getLong(bytes8, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name3 &= 0xFFFFFFFFFFFFFFL;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match26", "(JJJ)Z");
break;
}
case 27: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match27", "(JJJ)Z");
break;
}
case 28: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.visitLdcInsn(fieldName[27]);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match28", "(JJJB)Z");
break;
}
case 29: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
byte[] bytes4 = new byte[4];
bytes4[0] = fieldName[27];
bytes4[1] = fieldName[28];
bytes4[2] = '"';
bytes4[3] = ':';
int name4 = UNSAFE.getInt(bytes4, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name4 &= 0xFFFF;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.iconst_n(name4);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match29", "(JJJI)Z");
break;
}
case 30: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
byte[] bytes4 = new byte[4];
bytes4[0] = fieldName[27];
bytes4[1] = fieldName[28];
bytes4[2] = fieldName[29];
bytes4[3] = '"';
int name4 = UNSAFE.getInt(bytes4, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name4 &= 0xFFFFFF;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.iconst_n(name4);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match30", "(JJJI)Z");
break;
}
case 31: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
int name4 = UNSAFE.getInt(fieldName, ARRAY_BYTE_BASE_OFFSET + 27);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.iconst_n(name4);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match31", "(JJJI)Z");
break;
}
case 32: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
int name4 = UNSAFE.getInt(fieldName, ARRAY_BYTE_BASE_OFFSET + 27);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.visitLdcInsn(name4);
mw.iconst_n(fieldName[31]);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match32", "(JJJIB)Z");
break;
}
case 33: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
byte[] bytes8 = new byte[8];
System.arraycopy(fieldName, 27, bytes8, 0, 6);
bytes8[6] = '"';
bytes8[7] = ':';
long name4 = UNSAFE.getLong(bytes8, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name4 &= 0xFFFFFFFFFFFFL;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.visitLdcInsn(name4);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match33", "(JJJJ)Z");
break;
}
case 34: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
byte[] bytes8 = new byte[8];
System.arraycopy(fieldName, 27, bytes8, 0, 7);
bytes8[7] = '"';
long name4 = UNSAFE.getLong(bytes8, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name4 &= 0xFFFFFFFFFFFFFFL;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.visitLdcInsn(name4);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match34", "(JJJJ)Z");
break;
}
case 35: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
long name4 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 27);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.visitLdcInsn(name4);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match35", "(JJJJ)Z");
break;
}
case 36: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
long name4 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 27);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.visitLdcInsn(name4);
mw.iconst_n(fieldName[35]);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match36", "(JJJJB)Z");
break;
}
case 37: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
long name4 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 27);
byte[] bytes4 = new byte[4];
bytes4[0] = fieldName[35];
bytes4[1] = fieldName[36];
bytes4[2] = '"';
bytes4[3] = ':';
int name5 = UNSAFE.getInt(bytes4, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name5 &= 0xFFFF;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.visitLdcInsn(name4);
mw.iconst_n(name5);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match37", "(JJJJI)Z");
break;
}
case 38: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
long name4 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 27);
byte[] bytes4 = new byte[4];
bytes4[0] = fieldName[35];
bytes4[1] = fieldName[36];
bytes4[2] = fieldName[37];
bytes4[3] = '"';
int name5 = UNSAFE.getInt(bytes4, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name5 &= 0xFFFFFF;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.visitLdcInsn(name4);
mw.iconst_n(name5);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match38", "(JJJJI)Z");
break;
}
case 39: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
long name4 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 27);
int name5 = UNSAFE.getInt(fieldName, ARRAY_BYTE_BASE_OFFSET + 35);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.visitLdcInsn(name4);
mw.iconst_n(name5);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match39", "(JJJJI)Z");
break;
}
case 40: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
long name4 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 27);
int name5 = UNSAFE.getInt(fieldName, ARRAY_BYTE_BASE_OFFSET + 35);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.visitLdcInsn(name4);
mw.iconst_n(name5);
mw.iconst_n(fieldName[39]);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match40", "(JJJJIB)Z");
break;
}
case 41: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
long name4 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 27);
byte[] bytes8 = new byte[8];
System.arraycopy(fieldName, 35, bytes8, 0, 6);
bytes8[6] = '"';
bytes8[7] = ':';
long name5 = UNSAFE.getLong(bytes8, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name5 &= 0xFFFFFFFFFFFFL;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.visitLdcInsn(name4);
mw.visitLdcInsn(name5);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match41", "(JJJJJ)Z");
break;
}
case 42: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
long name4 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 27);
byte[] bytes8 = new byte[8];
System.arraycopy(fieldName, 35, bytes8, 0, 7);
bytes8[7] = '"';
long name5 = UNSAFE.getLong(bytes8, ARRAY_BYTE_BASE_OFFSET);
if (jsonb) {
name5 &= 0xFFFFFFFFFFFFFFL;
}
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.visitLdcInsn(name4);
mw.visitLdcInsn(name5);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match42", "(JJJJJ)Z");
break;
}
case 43: {
long name1 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 3);
long name2 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 11);
long name3 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 19);
long name4 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 27);
long name5 = UNSAFE.getLong(fieldName, ARRAY_BYTE_BASE_OFFSET + 35);
mw.aload(JSON_READER);
mw.visitLdcInsn(name1);
mw.visitLdcInsn(name2);
mw.visitLdcInsn(name3);
mw.visitLdcInsn(name4);
mw.visitLdcInsn(name5);
mw.invokevirtual(TYPE_JSON_READER, "nextIfName4Match43", "(JJJJJ)Z");
break;
}
default:
throw new IllegalStateException("fieldNameLength " + fieldNameLength);
}
mw.ifeq(nextJ != null ? nextJ : hashCode64Start);
genReadFieldValue(
context,
fieldReader,
fieldBased,
mwc,
OBJECT,
fieldReaderIndex,
false // arrayMapping
);
mw.goto_(L_FOR_INC);
if (nextJ != null) {
mw.visitLabel(nextJ);
}
}
mw.goto_(dflt);
}
mw.visitLabel(dflt);
}