From 0fee2c2961dabfc8f1a4180964868e69b18a07ba Mon Sep 17 00:00:00 2001 From: Lukas Stadler <lukas.stadler@oracle.com> Date: Tue, 3 May 2016 14:11:45 +0200 Subject: [PATCH] unify materializeNonShared and getNonShared --- .../truffle/r/nodes/builtin/base/UpdateAttr.java | 4 ++-- .../r/nodes/builtin/base/UpdateAttributes.java | 4 ++-- .../truffle/r/nodes/builtin/base/UpdateClass.java | 6 +++--- .../truffle/r/nodes/builtin/base/UpdateDim.java | 4 ++-- .../r/nodes/builtin/base/UpdateDimNames.java | 4 ++-- .../r/nodes/builtin/base/UpdateLevels.java | 4 ++-- .../truffle/r/nodes/builtin/base/UpdateNames.java | 4 ++-- .../r/nodes/builtin/base/UpdateOldClass.java | 4 ++-- .../truffle/r/nodes/unary/GetNonSharedNode.java | 3 ++- .../truffle/r/runtime/conn/ConnectionSupport.java | 2 +- .../truffle/r/runtime/conn/RConnection.java | 2 +- .../truffle/r/runtime/data/RExpression.java | 6 ------ .../oracle/truffle/r/runtime/data/RLanguage.java | 2 +- .../oracle/truffle/r/runtime/data/RPairList.java | 2 +- .../truffle/r/runtime/data/RScalarVector.java | 4 ++-- .../oracle/truffle/r/runtime/data/RSequence.java | 5 ++--- .../oracle/truffle/r/runtime/data/RShareable.java | 4 ++-- .../r/runtime/data/RSharingAttributeStorage.java | 2 +- .../oracle/truffle/r/runtime/data/RVector.java | 5 ----- .../r/runtime/data/closures/RToVectorClosure.java | 15 ++++++++------- .../r/runtime/data/model/RAbstractContainer.java | 2 +- 21 files changed, 39 insertions(+), 49 deletions(-) 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 638946ec85..d7d74400b2 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 b17d4c24aa..90d04224e4 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 cd33324c69..518f22a57c 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 f60fdc88af..920f33a652 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 56b3c8c2b8..5e604e8492 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 0d3d387ae3..f1c8b0c90c 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 1ff67547bc..4ff586756d 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 2e9e238247..ced6ef86dc 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 6c0435a233..4166d6769e 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 770f37352d..58a135e705 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 62dfc59351..10f6982922 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 a365680d20..c3bcbb9421 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 a053031e4e..46b363d3d6 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 b265557d72..bc3fe35363 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 e494a76e15..6d7ddced92 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 bac78060ac..20b9d77fca 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 029e4443be..2e008ca8f5 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 a915cdb26f..f87a82b76a 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 9292adf55f..d1984cecaa 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 21952499cc..98c8a9b3b5 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 ebe23dd5ce..befd4e8678 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(); -- GitLab