Mercurial > hg > truffle
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; }