changeset 22354:0ad8cb1608be

Get the foreign access factory that matches a specific foreign object.
author Danilo Ansaloni <danilo.ansaloni@oracle.com>
date Tue, 10 Nov 2015 14:29:08 +0100
parents 56e71849d356
children ef3c3b62e0fc
files truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ObjectType.java truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DynamicObjectImpl.java truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ShapeImpl.java truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLObjectType.java
diffstat 4 files changed, 14 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ObjectType.java	Fri Nov 06 20:54:49 2015 +0100
+++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/ObjectType.java	Tue Nov 10 14:29:08 2015 +0100
@@ -65,6 +65,7 @@
         return null;
     }
 
+    @Deprecated
     public ForeignAccess getForeignAccessFactory() {
         return ForeignAccess.create(new com.oracle.truffle.api.interop.ForeignAccess.Factory() {
 
@@ -77,4 +78,13 @@
             }
         });
     }
+
+    /**
+     * Create a {@link ForeignAccess} to access a specific {@link DynamicObject}.
+     *
+     * @param object the object to be accessed
+     */
+    public ForeignAccess getForeignAccessFactory(DynamicObject object) {
+        return getForeignAccessFactory();
+    }
 }
--- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DynamicObjectImpl.java	Fri Nov 06 20:54:49 2015 +0100
+++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DynamicObjectImpl.java	Tue Nov 10 14:29:08 2015 +0100
@@ -344,6 +344,6 @@
 
     @Override
     public ForeignAccess getForeignAccess() {
-        return getShape().getForeignAccessFactory();
+        return getShape().getForeignAccessFactory(this);
     }
 }
--- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ShapeImpl.java	Fri Nov 06 20:54:49 2015 +0100
+++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ShapeImpl.java	Tue Nov 10 14:29:08 2015 +0100
@@ -1152,7 +1152,7 @@
     private static final DebugCounter shapeCacheHitCount = DebugCounter.create("Shape cache hits");
     private static final DebugCounter shapeCacheMissCount = DebugCounter.create("Shape cache misses");
 
-    public ForeignAccess getForeignAccessFactory() {
-        return getObjectType().getForeignAccessFactory();
+    public ForeignAccess getForeignAccessFactory(DynamicObject object) {
+        return getObjectType().getForeignAccessFactory(object);
     }
 }
--- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLObjectType.java	Fri Nov 06 20:54:49 2015 +0100
+++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/runtime/SLObjectType.java	Tue Nov 10 14:29:08 2015 +0100
@@ -60,7 +60,7 @@
     }
 
     @Override
-    public ForeignAccess getForeignAccessFactory() {
+    public ForeignAccess getForeignAccessFactory(DynamicObject obj) {
         return access;
     }