# HG changeset patch # User Andreas Woess # Date 1439822443 -7200 # Node ID 55a3e72fe24180aa9d884ce3511e65b1e680a8b8 # Parent 485481716f0e931162f28fce966a7a614a408849 add DynamicObject#copy method diff -r 485481716f0e -r 55a3e72fe241 truffle/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/DynamicObject.java --- 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); } diff -r 485481716f0e -r 55a3e72fe241 truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/DynamicObjectImpl.java --- 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(); }