Mercurial > hg > truffle
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); |