comparison graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRIntrospection.java @ 21772:b41488bb4b7a

LIRIntrospection#scanField: use isAssignableFrom to check for constants.
author Josef Eisl <josef.eisl@jku.at>
date Mon, 01 Jun 2015 12:14:33 +0200
parents 48c1ebd24120
children
comparison
equal deleted inserted replaced
21771:ed3d7af510bd 21772:b41488bb4b7a
163 protected abstract EnumSet<OperandFlag> getFlags(Field field); 163 protected abstract EnumSet<OperandFlag> getFlags(Field field);
164 164
165 @Override 165 @Override
166 protected void scanField(Field field, long offset) { 166 protected void scanField(Field field, long offset) {
167 Class<?> type = field.getType(); 167 Class<?> type = field.getType();
168 if (VALUE_CLASS.isAssignableFrom(type) && type != CONSTANT_CLASS) { 168 if (VALUE_CLASS.isAssignableFrom(type) && !CONSTANT_CLASS.isAssignableFrom(type)) {
169 assert !Modifier.isFinal(field.getModifiers()) : "Value field must not be declared final because it is modified by register allocator: " + field; 169 assert !Modifier.isFinal(field.getModifiers()) : "Value field must not be declared final because it is modified by register allocator: " + field;
170 OperandModeAnnotation annotation = getOperandModeAnnotation(field); 170 OperandModeAnnotation annotation = getOperandModeAnnotation(field);
171 assert annotation != null : "Field must have operand mode annotation: " + field; 171 assert annotation != null : "Field must have operand mode annotation: " + field;
172 EnumSet<OperandFlag> flags = getFlags(field); 172 EnumSet<OperandFlag> flags = getFlags(field);
173 assert verifyFlags(field, type, flags); 173 assert verifyFlags(field, type, flags);