changeset 19012:f5b83e7b2b4c

Truffle: simplify NodeUtil.findChildField
author Andreas Woess <andreas.woess@jku.at>
date Thu, 29 Jan 2015 03:11:53 +0100
parents 203c7256e123
children f7375de5eaa0
files graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java
diffstat 1 files changed, 4 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java	Thu Jan 29 00:12:55 2015 +0000
+++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java	Thu Jan 29 03:11:53 2015 +0100
@@ -362,15 +362,6 @@
             return childrenFields;
         }
 
-        public NodeField findField(long fieldOffset) {
-            for (NodeField field : getFields()) {
-                if (field.getOffset() == fieldOffset) {
-                    return field;
-                }
-            }
-            return null;
-        }
-
         @Override
         public int hashCode() {
             return clazz.hashCode();
@@ -665,20 +656,18 @@
         NodeClass parentNodeClass = NodeClass.get(parent.getClass());
 
         for (NodeField field : parentNodeClass.getChildFields()) {
-            final long fieldOffset = field.getOffset();
-            if (unsafe.getObject(parent, fieldOffset) == child) {
-                return parentNodeClass.findField(fieldOffset);
+            if (field.getObject(parent) == child) {
+                return field;
             }
         }
 
         for (NodeField field : parentNodeClass.getChildrenFields()) {
-            final long fieldOffset = field.getOffset();
-            Object arrayObject = unsafe.getObject(parent, fieldOffset);
+            Object arrayObject = field.getObject(parent);
             if (arrayObject != null) {
                 Object[] array = (Object[]) arrayObject;
                 for (int i = 0; i < array.length; i++) {
                     if (array[i] == child) {
-                        return parentNodeClass.findField(fieldOffset);
+                        return field;
                     }
                 }
             }