comparison graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java @ 21771:ed3d7af510bd

BytecodeParser#lookupField: use eagerResolving instead of unresolvedIsError to guard explicit initialization.
author Josef Eisl <josef.eisl@jku.at>
date Wed, 03 Jun 2015 09:28:41 +0200
parents bb72c486714a
children 76c162c69c2f
comparison
equal deleted inserted replaced
21770:c76742cc2c6f 21771:ed3d7af510bd
2898 } 2898 }
2899 2899
2900 private JavaField lookupField(int cpi, int opcode) { 2900 private JavaField lookupField(int cpi, int opcode) {
2901 maybeEagerlyResolve(cpi, opcode); 2901 maybeEagerlyResolve(cpi, opcode);
2902 JavaField result = constantPool.lookupField(cpi, opcode); 2902 JavaField result = constantPool.lookupField(cpi, opcode);
2903 if (graphBuilderConfig.unresolvedIsError()) { 2903 if (graphBuilderConfig.eagerResolving()) {
2904 assert result instanceof ResolvedJavaField : "Not resolved: " + result; 2904 assert result instanceof ResolvedJavaField : "Not resolved: " + result;
2905 ResolvedJavaType declaringClass = ((ResolvedJavaField) result).getDeclaringClass(); 2905 ResolvedJavaType declaringClass = ((ResolvedJavaField) result).getDeclaringClass();
2906 if (!declaringClass.isInitialized()) { 2906 if (!declaringClass.isInitialized()) {
2907 assert declaringClass.isInterface() : "Declaring class not initialized but not an interface? " + declaringClass; 2907 assert declaringClass.isInterface() : "Declaring class not initialized but not an interface? " + declaringClass;
2908 declaringClass.initialize(); 2908 declaringClass.initialize();