Mercurial > hg > graal-jvmci-8
changeset 10653:ab689f0086bb
Fix unsafe access node.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Mon, 08 Jul 2013 21:08:14 +0200 |
parents | aca7481e71d1 |
children | d71c56c67921 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeAccessNode.java |
diffstat | 1 files changed, 8 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeAccessNode.java Mon Jul 08 16:27:46 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeAccessNode.java Mon Jul 08 21:08:14 2013 +0200 @@ -69,13 +69,14 @@ // TODO (gd) remove that once UnsafeAccess only have an object base ObjectStamp receiverStamp = object().objectStamp(); ResolvedJavaType receiverType = receiverStamp.type(); - ResolvedJavaField field = receiverType.findInstanceFieldWithOffset(displacement() + constantOffset); - - // No need for checking that the receiver is non-null. The field access includes the - // null check and if a field is found, the offset is so small that this is never a - // valid access of an arbitrary address. - if (field != null && field.getKind() == this.accessKind()) { - return cloneAsFieldAccess(field); + if (receiverType != null) { + ResolvedJavaField field = receiverType.findInstanceFieldWithOffset(displacement() + constantOffset); + // No need for checking that the receiver is non-null. The field access includes + // the null check and if a field is found, the offset is so small that this is + // never a valid access of an arbitrary address. + if (field != null && field.getKind() == this.accessKind()) { + return cloneAsFieldAccess(field); + } } }