diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttr.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttr.java index 638946ec8596417fb0afe0821ac21d12d83301ee..d7d74400b22f6ae104736911fcec886318b2df5d 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttr.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttr.java @@ -122,7 +122,7 @@ public abstract class UpdateAttr extends RInvisibleBuiltinNode { protected RAbstractContainer updateAttr(RAbstractContainer container, String name, RNull value) { controlVisibility(); String internedName = intern(name); - RAbstractContainer result = container.materializeNonShared(); + RAbstractContainer result = (RAbstractContainer) container.getNonShared(); // the name is interned, so identity comparison is sufficient if (internedName == RRuntime.DIM_ATTR_KEY) { result.setDimensions(null); @@ -155,7 +155,7 @@ public abstract class UpdateAttr extends RInvisibleBuiltinNode { protected RAbstractContainer updateAttr(RAbstractContainer container, String name, Object value) { controlVisibility(); String internedName = intern(name); - RAbstractContainer result = container.materializeNonShared(); + RAbstractContainer result = (RAbstractContainer) container.getNonShared(); // the name is interned, so identity comparison is sufficient if (internedName == RRuntime.DIM_ATTR_KEY) { RAbstractIntVector dimsVector = castInteger(castVector(value)); diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttributes.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttributes.java index b17d4c24aac84d5887b291b9486ecd50d9ac9a0f..90d04224e4413df45ebde4009b277f9124aa4df3 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttributes.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateAttributes.java @@ -98,7 +98,7 @@ public abstract class UpdateAttributes extends RInvisibleBuiltinNode { @Specialization protected RAbstractVector updateAttributes(RAbstractVector abstractVector, @SuppressWarnings("unused") RNull list) { controlVisibility(); - RAbstractVector resultVector = (RAbstractVector) abstractVector.materializeNonShared(); + RAbstractVector resultVector = (RAbstractVector) abstractVector.getNonShared(); resultVector.resetAllAttributes(true); return resultVector; } @@ -111,7 +111,7 @@ public abstract class UpdateAttributes extends RInvisibleBuiltinNode { throw RError.error(this, RError.Message.ATTRIBUTES_NAMED); } RStringVector listNames = (RStringVector) listNamesObject; - RAbstractContainer result = container.materializeNonShared(); + RAbstractContainer result = (RAbstractContainer) container.getNonShared(); if (numAttributesProfile.profile(list.getLength() == 0)) { result.resetAllAttributes(true); } else { diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateClass.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateClass.java index cd33324c69dc387941c29c28280a7709d5cd0b78..518f22a57ccb58a104092a5d3eb3e2cf588c540f 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateClass.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateClass.java @@ -76,7 +76,7 @@ public abstract class UpdateClass extends RBuiltinNode { protected Object setClass(RAbstractContainer arg, @SuppressWarnings("unused") RNull className) { controlVisibility(); - RAbstractContainer result = arg.materializeNonShared(); + RAbstractContainer result = (RAbstractContainer) arg.getNonShared(); return result.setClassAttr(null, false); } @@ -111,7 +111,7 @@ public abstract class UpdateClass extends RBuiltinNode { return setClass((RAbstractVector) result, RNull.instance); } } - RAbstractContainer result = arg.materializeNonShared(); + RAbstractContainer result = (RAbstractContainer) arg.getNonShared(); if (result instanceof RAbstractVector) { RAbstractVector resultVector = (RAbstractVector) result; if (RType.Matrix.getName().equals(className)) { @@ -138,7 +138,7 @@ public abstract class UpdateClass extends RBuiltinNode { @TruffleBoundary protected Object setClass(RAbstractContainer arg, RStringVector className) { controlVisibility(); - RAbstractContainer result = arg.materializeNonShared(); + RAbstractContainer result = (RAbstractContainer) arg.getNonShared(); return result.setClassAttr(className, false); } diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateDim.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateDim.java index f60fdc88af1603b2378b62c9353df2c9191d6069..920f33a652d25854fd3e1f341e68ba6e4d7966df 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateDim.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateDim.java @@ -52,7 +52,7 @@ public abstract class UpdateDim extends RInvisibleBuiltinNode { @Specialization protected RAbstractVector updateDim(RAbstractVector vector, @SuppressWarnings("unused") RNull dimensions) { controlVisibility(); - RVector result = (RVector) vector.materializeNonShared(); + RVector result = (RVector) vector.getNonShared(); result.resetDimensions(null); return result; } @@ -66,7 +66,7 @@ public abstract class UpdateDim extends RInvisibleBuiltinNode { } int[] dimsData = castInteger(dimensions).materialize().getDataCopy(); RVector.verifyDimensions(vector.getLength(), dimsData, this); - RVector result = (RVector) vector.materializeNonShared(); + RVector result = (RVector) vector.getNonShared(); result.resetDimensions(dimsData); return result; } diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateDimNames.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateDimNames.java index 56b3c8c2b86441d86a6e61607ef915af7b1d5ee8..5e604e8492d7d897056356d40f17e3cc68c0e643 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateDimNames.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateDimNames.java @@ -94,7 +94,7 @@ public abstract class UpdateDimNames extends RInvisibleBuiltinNode { protected RAbstractContainer updateDimnamesNull(RAbstractContainer container, @SuppressWarnings("unused") RNull list, // @Cached("create(DIMNAMES_ATTR_KEY)") RemoveAttributeNode remove) { controlVisibility(); - RAbstractContainer result = container.materializeNonShared(); + RAbstractContainer result = (RAbstractContainer) container.getNonShared(); if (isRVectorProfile.profile(container instanceof RVector)) { RVector vector = (RVector) container; if (vector.getInternalDimNames() != null) { @@ -117,7 +117,7 @@ public abstract class UpdateDimNames extends RInvisibleBuiltinNode { protected RAbstractContainer updateDimnames(RAbstractContainer container, RList list, // @Cached("create(DIMNAMES_ATTR_KEY)") PutAttributeNode put) { controlVisibility(); - RAbstractContainer result = container.materializeNonShared(); + RAbstractContainer result = (RAbstractContainer) container.getNonShared(); setDimNames(result, convertToListOfStrings(list), put); return result; } diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateLevels.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateLevels.java index 0d3d387ae3876196022c19cb9b30c9986a3764fa..f1c8b0c90c229a39c25441613f00dfe9767fb050 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateLevels.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateLevels.java @@ -43,7 +43,7 @@ public abstract class UpdateLevels extends RInvisibleBuiltinNode { @Specialization protected RAbstractVector updateLevels(RAbstractVector vector, @SuppressWarnings("unused") RNull levels) { controlVisibility(); - RVector v = (RVector) vector.materializeNonShared(); + RVector v = (RVector) vector.getNonShared(); v.removeAttr(attrProfiles, RRuntime.LEVELS_ATTR_KEY); return v; } @@ -51,7 +51,7 @@ public abstract class UpdateLevels extends RInvisibleBuiltinNode { @Specialization(guards = "levelsNotNull(levels)") protected RAbstractVector updateLevels(RAbstractVector vector, Object levels) { controlVisibility(); - RVector v = (RVector) vector.materializeNonShared(); + RVector v = (RVector) vector.getNonShared(); v.setAttr(RRuntime.LEVELS_ATTR_KEY, castVector(levels)); return v; } diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateNames.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateNames.java index 1ff67547bc22a99ce42cc140f18880eab1726f90..4ff586756d9a60c91f905d0f030e3711cbb1b710 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateNames.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateNames.java @@ -58,7 +58,7 @@ public abstract class UpdateNames extends RInvisibleBuiltinNode { controlVisibility(); Object newNames = castString(names); if (newNames == RNull.instance) { - RAbstractContainer result = container.materializeNonShared(); + RAbstractContainer result = (RAbstractContainer) container.getNonShared(); result.setNames(null); return result; } @@ -69,7 +69,7 @@ public abstract class UpdateNames extends RInvisibleBuiltinNode { } else { stringVector = (RStringVector) ((RAbstractVector) newNames).materialize(); } - RAbstractContainer result = container.materializeNonShared(); + RAbstractContainer result = (RAbstractContainer) container.getNonShared(); if (stringVector.getLength() < result.getLength()) { stringVector = stringVector.copyResized(result.getLength(), true); } else if (stringVector == container) { diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateOldClass.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateOldClass.java index 2e9e238247615b97e6a94296882e1f81d1c8777c..ced6ef86dc12a12de8c27ecae2555993f6dc9131 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateOldClass.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateOldClass.java @@ -73,7 +73,7 @@ public abstract class UpdateOldClass extends RInvisibleBuiltinNode { @TruffleBoundary protected Object setOldClass(RAbstractContainer arg, RStringVector className) { controlVisibility(); - RAbstractContainer result = arg.materializeNonShared(); + RAbstractContainer result = (RAbstractContainer) arg.getNonShared(); return result.setClassAttr(className, false); } @@ -81,7 +81,7 @@ public abstract class UpdateOldClass extends RInvisibleBuiltinNode { @TruffleBoundary protected Object setOldClass(RAbstractContainer arg, @SuppressWarnings("unused") RNull className) { controlVisibility(); - RAbstractContainer result = arg.materializeNonShared(); + RAbstractContainer result = (RAbstractContainer) arg.getNonShared(); return result.setClassAttr(null, false); } diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/GetNonSharedNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/GetNonSharedNode.java index 6c0435a2331e44dd7ed1930a6bbbeb34af9ce1bf..4166d6769e61f47b19a8fcf908cf34e27d2392e3 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/GetNonSharedNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/GetNonSharedNode.java @@ -30,6 +30,7 @@ import com.oracle.truffle.api.source.SourceSection; import com.oracle.truffle.r.runtime.RInternalError; import com.oracle.truffle.r.runtime.RSerialize; import com.oracle.truffle.r.runtime.data.RShareable; +import com.oracle.truffle.r.runtime.data.RTypedValue; import com.oracle.truffle.r.runtime.env.REnvironment; import com.oracle.truffle.r.runtime.nodes.RNode; import com.oracle.truffle.r.runtime.nodes.RSyntaxNode; @@ -41,7 +42,7 @@ public abstract class GetNonSharedNode extends RNode implements RSyntaxNode { private final ValueProfile shareableTypeProfile = ValueProfile.createClassProfile(); @Specialization - protected RShareable getNonShared(RShareable shareable) { + protected RTypedValue getNonShared(RShareable shareable) { return shareableTypeProfile.profile(shareable).getNonShared(); } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/conn/ConnectionSupport.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/conn/ConnectionSupport.java index 770f37352da5afd6dc6ee1d7248b2566f5962274..58a135e705e73f61cd5b64a1d618a6887615c5dd 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/conn/ConnectionSupport.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/conn/ConnectionSupport.java @@ -346,7 +346,7 @@ public class ConnectionSupport { // TODO implement all open modes - public static class InvalidConnection extends RConnection { + public static final class InvalidConnection extends RConnection { public static final InvalidConnection instance = new InvalidConnection(); diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/conn/RConnection.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/conn/RConnection.java index 62dfc593511b0f906534477dc6fa8c6a19bc8067..10f69829220c49fb43baa959cdc872f909715487 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/conn/RConnection.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/conn/RConnection.java @@ -370,7 +370,7 @@ public abstract class RConnection extends RAttributeStorage implements RTypedVal } @Override - public RAbstractContainer materializeNonShared() { + public RTypedValue getNonShared() { return this; } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RExpression.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RExpression.java index a365680d20d128c48ab93657ad3970982033a771..c3bcbb942181b6019f985074c807cbaeb18609ec 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RExpression.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RExpression.java @@ -115,12 +115,6 @@ public class RExpression implements RShareable, RAbstractContainer { return RExpression.class; } - @Override - public RExpression materializeNonShared() { - RVector d = data.materializeNonShared(); - return data != d ? RDataFactory.createExpression((RList) d) : this; - } - @Override public Object getDataAtAsObject(int index) { return data.getDataAtAsObject(index); diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RLanguage.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RLanguage.java index a053031e4e044207e4ceed3c5c538314a280e247..46b363d3d63d4a37c0bb477f2babf628b8616ca4 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RLanguage.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RLanguage.java @@ -128,7 +128,7 @@ public class RLanguage extends RSharingAttributeStorage implements RAbstractCont } @Override - public RLanguage materializeNonShared() { + public RLanguage getNonShared() { return (RLanguage) getNonShared(); } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RPairList.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RPairList.java index b265557d72aa6a0bfbbd8ece789dfde9b2267332..bc3fe353635825c7ea4c1a29f1243ce8e3efc234 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RPairList.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RPairList.java @@ -236,7 +236,7 @@ public class RPairList extends RAttributeStorage implements RAbstractContainer { } @Override - public RVector materializeNonShared() { + public RVector getNonShared() { RInternalError.shouldNotReachHere(); return null; } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RScalarVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RScalarVector.java index e494a76e15735df71912cfae0f58a732814e44fc..6d7ddced925c96d8bebedfbb4b98892d18dba52f 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RScalarVector.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RScalarVector.java @@ -81,8 +81,8 @@ public abstract class RScalarVector extends RScalar implements RAbstractVector { } @Override - public RAbstractContainer materializeNonShared() { - return materialize().materializeNonShared(); + public RTypedValue getNonShared() { + return materialize().getNonShared(); } @Override diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RSequence.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RSequence.java index bac78060ac764a9f604c3357e0031fedff2729f5..20b9d77fca3686764098a20939ec131d072c04c9 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RSequence.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RSequence.java @@ -169,9 +169,8 @@ public abstract class RSequence implements RAbstractVector { } @Override - public final RVector materializeNonShared() { - RVector resultVector = this.materialize().materializeNonShared(); - return resultVector; + public final RTypedValue getNonShared() { + return materialize().getNonShared(); } @Override diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RShareable.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RShareable.java index 029e4443be0f1e1e5279f0d9cbfc1d31b3fd56ae..2e008ca8f5facebe3c0641fde1cd26170035eaf0 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RShareable.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RShareable.java @@ -22,7 +22,7 @@ */ package com.oracle.truffle.r.runtime.data; -public interface RShareable { +public interface RShareable extends RTypedValue { // SHARED_PERMANENT_VAL describes both overflow value and a value that can be set to prevent // further updates to ref count (for sharing between different threads) - can potentially be @@ -48,6 +48,6 @@ public interface RShareable { void makeSharedPermanent(); - RShareable getNonShared(); + RTypedValue getNonShared(); } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RSharingAttributeStorage.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RSharingAttributeStorage.java index a915cdb26f7d7fbd646c660a55c3491af963bc73..f87a82b76a8197add0a2772ee67f94b133ae5dd0 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RSharingAttributeStorage.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RSharingAttributeStorage.java @@ -61,7 +61,7 @@ public abstract class RSharingAttributeStorage extends RAttributeStorage impleme } @Override - public RShareable getNonShared() { + public RTypedValue getNonShared() { if (isShared()) { RShareable res = copy(); assert res.isTemporary(); diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RVector.java index 9292adf55f7794dcdcb8e2696eff364b578e5890..d1984cecaa8b7690c10585aac8e5b10fc07e34d2 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RVector.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RVector.java @@ -788,11 +788,6 @@ public abstract class RVector extends RSharingAttributeStorage implements RShare return implicitClassHeader; } - @Override - public RVector materializeNonShared() { - return (RVector) getNonShared(); - } - @Override public final RShareable materializeToShareable() { return materialize(); diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToVectorClosure.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToVectorClosure.java index 21952499cc71457ff6317756bc8985a0387ee086..98c8a9b3b5d7f5eb3862b274c3cdb034a111838b 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToVectorClosure.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/closures/RToVectorClosure.java @@ -27,6 +27,7 @@ import com.oracle.truffle.r.runtime.data.RAttributes; import com.oracle.truffle.r.runtime.data.RList; import com.oracle.truffle.r.runtime.data.RShareable; import com.oracle.truffle.r.runtime.data.RStringVector; +import com.oracle.truffle.r.runtime.data.RTypedValue; import com.oracle.truffle.r.runtime.data.RVector; import com.oracle.truffle.r.runtime.data.model.RAbstractContainer; import com.oracle.truffle.r.runtime.data.model.RAbstractVector; @@ -45,7 +46,7 @@ abstract class RToVectorClosure implements RAbstractVector { } @Override - public Void getInternalStore() { + public final Void getInternalStore() { return null; } @@ -164,7 +165,7 @@ abstract class RToVectorClosure implements RAbstractVector { } @Override - public RStringVector getImplicitClass() { + public final RStringVector getImplicitClass() { return vector.getImplicitClass(); } @@ -174,8 +175,8 @@ abstract class RToVectorClosure implements RAbstractVector { } @Override - public final RAbstractVector materializeNonShared() { - return (RAbstractVector) vector.materializeNonShared(); + public final RTypedValue getNonShared() { + return vector.getNonShared(); } @Override @@ -184,17 +185,17 @@ abstract class RToVectorClosure implements RAbstractVector { } @Override - public int getGPBits() { + public final int getGPBits() { return vector.getGPBits(); } @Override - public void setGPBits(int value) { + public final void setGPBits(int value) { vector.setGPBits(value); } @Override - public boolean isS4() { + public final boolean isS4() { return false; } } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractContainer.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractContainer.java index ebe23dd5ce124f744a817b151e4f6ff32c85dbef..befd4e867877b9b1375e1184dec6ca9686960c2e 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractContainer.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractContainer.java @@ -45,7 +45,7 @@ public interface RAbstractContainer extends RAttributable, RTypedValue { Class<?> getElementClass(); - RAbstractContainer materializeNonShared(); + RTypedValue getNonShared(); RShareable materializeToShareable();