Mercurial > hg > truffle
changeset 22091:55a3e72fe241
add DynamicObject#copy method
author | Andreas Woess <andreas.woess@oracle.com> |
---|---|
date | Mon, 17 Aug 2015 16:40:43 +0200 |
parents | 485481716f0e |
children | 1a1aa12ab310 |
files | truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/DynamicObject.java truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DynamicObjectImpl.java |
diffstat | 2 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/DynamicObject.java Mon Aug 17 15:57:29 2015 +0200 +++ b/truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/DynamicObject.java Mon Aug 17 16:40:43 2015 +0200 @@ -156,6 +156,13 @@ */ public abstract boolean updateShape(); + /** + * Create a shallow copy of this object. + * + * @param currentShape the object's current shape (must equal {@link #getShape()}) + */ + public abstract DynamicObject copy(Shape currentShape); + public interface FlagsFunction { int apply(int t); }
--- a/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DynamicObjectImpl.java Mon Aug 17 15:57:29 2015 +0200 +++ b/truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DynamicObjectImpl.java Mon Aug 17 16:40:43 2015 +0200 @@ -375,6 +375,11 @@ } @Override + public final DynamicObject copy(Shape currentShape) { + return cloneWithShape(currentShape); + } + + @Override public ForeignAccess getForeignAccess() { return getShape().getForeignAccessFactory(); }