changeset 19018:52be1821f533

Merge
author Tom Rodriguez <tom.rodriguez@oracle.com>
date Wed, 28 Jan 2015 19:56:03 -0800
parents f7375de5eaa0 (diff) b7797e485eb8 (current diff)
children a11dcfb15695
files
diffstat 2 files changed, 6 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/CompilerDirectives.java	Wed Jan 28 17:48:54 2015 -0800
+++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/CompilerDirectives.java	Wed Jan 28 19:56:03 2015 -0800
@@ -664,7 +664,7 @@
      * Marks a method that it is considered as a boundary for Truffle partial evaluation.
      */
     @Retention(RetentionPolicy.RUNTIME)
-    @Target({ElementType.METHOD})
+    @Target({ElementType.METHOD, ElementType.CONSTRUCTOR})
     public @interface TruffleBoundary {
     }
 
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java	Wed Jan 28 17:48:54 2015 -0800
+++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java	Wed Jan 28 19:56:03 2015 -0800
@@ -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;
                     }
                 }
             }
@@ -1091,6 +1080,7 @@
             final StringBuilder sb = new StringBuilder();
             sb.append("source:");
             sb.append(" (" + section.getCharIndex() + "," + (section.getCharEndIndex() - 1) + ")");
+            sb.append(" line=" + section.getLineLocation().getLineNumber());
             sb.append(" len=" + srcText.length());
             sb.append(" text=\"" + srcText + "\"");
             return sb.toString();