Lines 2008-2014
Link Here
|
2008 |
|
2008 |
|
2009 |
this.getstatic(syntheticFieldBinding); |
2009 |
this.getstatic(syntheticFieldBinding); |
2010 |
this.dup(); |
2010 |
this.dup(); |
2011 |
this.ifnonnull(nullLabel); |
2011 |
this.ifnull(nullLabel); |
|
|
2012 |
final int stackSizeForIf = this.stackDepth; |
2013 |
this.areturn(); |
2014 |
nullLabel.place(); |
2015 |
this.stackDepth = stackSizeForIf; |
2012 |
this.pop(); |
2016 |
this.pop(); |
2013 |
ReferenceBinding enumBinding = (ReferenceBinding) methodBinding.targetEnumType; |
2017 |
ReferenceBinding enumBinding = (ReferenceBinding) methodBinding.targetEnumType; |
2014 |
char[] signature = "()".toCharArray(); //$NON-NLS-1$ |
2018 |
char[] signature = "()".toCharArray(); //$NON-NLS-1$ |
Lines 2017-2023
Link Here
|
2017 |
this.invoke(OPC_invokestatic, 0, 1, enumBinding.constantPoolName(), TypeConstants.VALUES, signature); |
2021 |
this.invoke(OPC_invokestatic, 0, 1, enumBinding.constantPoolName(), TypeConstants.VALUES, signature); |
2018 |
this.arraylength(); |
2022 |
this.arraylength(); |
2019 |
this.newarray(INT_ARRAY); |
2023 |
this.newarray(INT_ARRAY); |
2020 |
this.putstatic(syntheticFieldBinding); |
2024 |
this.astore_0(); |
2021 |
final FieldBinding[] fields = enumBinding.fields(); |
2025 |
final FieldBinding[] fields = enumBinding.fields(); |
2022 |
if (fields != null) { |
2026 |
if (fields != null) { |
2023 |
for (int i = 0, max = fields.length; i < max; i++) { |
2027 |
for (int i = 0, max = fields.length; i < max; i++) { |
Lines 2025-2031
Link Here
|
2025 |
if ((fieldBinding.getAccessFlags() & IConstants.AccEnum) != 0) { |
2029 |
if ((fieldBinding.getAccessFlags() & IConstants.AccEnum) != 0) { |
2026 |
final Label endLabel = new Label(this); |
2030 |
final Label endLabel = new Label(this); |
2027 |
final ExceptionLabel anyExceptionHandler = new ExceptionLabel(this, BaseTypes.LongBinding /* represents NoSuchFieldError*/); |
2031 |
final ExceptionLabel anyExceptionHandler = new ExceptionLabel(this, BaseTypes.LongBinding /* represents NoSuchFieldError*/); |
2028 |
this.getstatic(syntheticFieldBinding); |
2032 |
this.aload_0(); |
2029 |
this.getstatic(fieldBinding); |
2033 |
this.getstatic(fieldBinding); |
2030 |
this.invokeEnumOrdinal(enumBinding.constantPoolName()); |
2034 |
this.invokeEnumOrdinal(enumBinding.constantPoolName()); |
2031 |
this.generateInlinedValue(fieldBinding.id); |
2035 |
this.generateInlinedValue(fieldBinding.id); |
Lines 2042-2049
Link Here
|
2042 |
} |
2046 |
} |
2043 |
} |
2047 |
} |
2044 |
} |
2048 |
} |
2045 |
this.getstatic(syntheticFieldBinding); |
2049 |
this.aload_0(); |
2046 |
nullLabel.place(); |
2050 |
this.dup(); |
|
|
2051 |
this.putstatic(syntheticFieldBinding); |
2047 |
areturn(); |
2052 |
areturn(); |
2048 |
} |
2053 |
} |
2049 |
public void generateSyntheticBodyForFieldReadAccess(SyntheticMethodBinding accessBinding) { |
2054 |
public void generateSyntheticBodyForFieldReadAccess(SyntheticMethodBinding accessBinding) { |