Fix 3186 (#3521)
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, macos-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, ubuntu-24.04) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, windows-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, macos-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, ubuntu-24.04) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, windows-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, macos-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, ubuntu-24.04) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, windows-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, macos-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, ubuntu-24.04) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, windows-latest) (push) Has been cancelled Details

* fix reuse local variable

* fix all
This commit is contained in:
yanxutao89 2025-04-28 06:22:06 +08:00 committed by GitHub
parent ddf4f50784
commit 80c005c491
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 10 additions and 6 deletions

View File

@ -1622,7 +1622,7 @@ public class ObjectWriterCreatorASM
|| fieldClass == BigDecimal.class || fieldClass == BigDecimal.class
|| fieldClass.isEnum() || fieldClass.isEnum()
) { ) {
gwValue(mwc, fieldWriter, OBJECT, i); gwValue(mwc, fieldWriter, OBJECT, i, null);
} else if (fieldClass == Date.class) { } else if (fieldClass == Date.class) {
gwDate(mwc, fieldWriter, OBJECT, i); gwDate(mwc, fieldWriter, OBJECT, i);
} else if (fieldWriter instanceof FieldWriterList) { } else if (fieldWriter instanceof FieldWriterList) {
@ -1865,7 +1865,7 @@ public class ObjectWriterCreatorASM
mw.invokevirtual(TYPE_FIELD_WRITER, "writeDate", METHOD_DESC_WRITE_DATE_WITH_FIELD_NAME); mw.invokevirtual(TYPE_FIELD_WRITER, "writeDate", METHOD_DESC_WRITE_DATE_WITH_FIELD_NAME);
} }
private void gwValue(MethodWriterContext mwc, FieldWriter fieldWriter, int OBJECT, int i) { private void gwValue(MethodWriterContext mwc, FieldWriter fieldWriter, int OBJECT, int i, Integer LOCAL_FIELD_VALUE) {
MethodWriter mw = mwc.mw; MethodWriter mw = mwc.mw;
Class fieldClass = fieldWriter.fieldClass; Class fieldClass = fieldWriter.fieldClass;
@ -1880,7 +1880,11 @@ public class ObjectWriterCreatorASM
} }
mw.aload(JSON_WRITER); mw.aload(JSON_WRITER);
genGetObject(mwc, fieldWriter, i, OBJECT); if (LOCAL_FIELD_VALUE != null) {
mw.loadLocal(fieldClass, LOCAL_FIELD_VALUE);
} else {
genGetObject(mwc, fieldWriter, i, OBJECT);
}
if (fieldWriter.decimalFormat != null) { if (fieldWriter.decimalFormat != null) {
if (fieldClass == double.class) { if (fieldClass == double.class) {
@ -2148,7 +2152,7 @@ public class ObjectWriterCreatorASM
|| fieldClass == BigDecimal.class || fieldClass == BigDecimal.class
|| fieldClass.isEnum() || fieldClass.isEnum()
) { ) {
gwValue(mwc, fieldWriter, OBJECT, i); gwValue(mwc, fieldWriter, OBJECT, i, null);
} else if (fieldClass == Date.class) { } else if (fieldClass == Date.class) {
gwDate(mwc, fieldWriter, OBJECT, i); gwDate(mwc, fieldWriter, OBJECT, i);
} else if (fieldWriter instanceof FieldWriterList) { } else if (fieldWriter instanceof FieldWriterList) {
@ -3977,7 +3981,7 @@ public class ObjectWriterCreatorASM
} }
} else if (fieldClass == double.class) { } else if (fieldClass == double.class) {
gwFieldName(mwc, fieldWriter, i); gwFieldName(mwc, fieldWriter, i);
gwValue(mwc, fieldWriter, OBJECT, i); gwValue(mwc, fieldWriter, OBJECT, i, FIELD_VALUE);
} else { } else {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@ -4064,7 +4068,7 @@ public class ObjectWriterCreatorASM
gwFieldName(mwc, fieldWriter, i); gwFieldName(mwc, fieldWriter, i);
gwValue(mwc, fieldWriter, OBJECT, i); gwValue(mwc, fieldWriter, OBJECT, i, FIELD_VALUE);
mw.visitLabel(endWriteValue_); mw.visitLabel(endWriteValue_);
} }