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);
+                    }
                 }
             }