View | Details | Raw Unified | Return to bug 99282
Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/codegen/CodeStream.java (-5 / +10 lines)
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) {

Return to bug 99282