From e1154d6aeeddf0bb04f7be9a84469f7174c1af68 Mon Sep 17 00:00:00 2001
From: Adam Welc <adam.welc@oracle.com>
Date: Mon, 27 Jan 2014 14:07:49 -0800
Subject: [PATCH] Vectors should be made shared when required by the use of the
 copy and not at the point of making the copy itself.

---
 .../src/com/oracle/truffle/r/runtime/data/RComplexVector.java    | 1 -
 .../src/com/oracle/truffle/r/runtime/data/RDoubleVector.java     | 1 -
 .../src/com/oracle/truffle/r/runtime/data/RIntVector.java        | 1 -
 .../src/com/oracle/truffle/r/runtime/data/RList.java             | 1 -
 .../src/com/oracle/truffle/r/runtime/data/RLogicalVector.java    | 1 -
 .../src/com/oracle/truffle/r/runtime/data/RRawVector.java        | 1 -
 .../src/com/oracle/truffle/r/runtime/data/RStringVector.java     | 1 -
 7 files changed, 7 deletions(-)

diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RComplexVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RComplexVector.java
index d3c75e7c81..28679dad30 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RComplexVector.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RComplexVector.java
@@ -75,7 +75,6 @@ public final class RComplexVector extends RVector implements RAbstractComplexVec
     }
 
     public RComplexVector copyWithNewDimensions(int[] newDimensions) {
-        this.makeShared();
         return RDataFactory.createComplexVector(data, isComplete(), newDimensions);
     }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RDoubleVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RDoubleVector.java
index 15aabfabbb..622fb714ea 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RDoubleVector.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RDoubleVector.java
@@ -89,7 +89,6 @@ public final class RDoubleVector extends RVector implements RAbstractDoubleVecto
     }
 
     public RDoubleVector copyWithNewDimensions(int[] newDimensions) {
-        this.makeShared();
         return RDataFactory.createDoubleVector(data, isComplete(), newDimensions);
     }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RIntVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RIntVector.java
index 925bad0874..de63c0fb60 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RIntVector.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RIntVector.java
@@ -87,7 +87,6 @@ public final class RIntVector extends RVector implements RAbstractIntVector {
     }
 
     public RIntVector copyWithNewDimensions(int[] newDimensions) {
-        this.makeShared();
         return RDataFactory.createIntVector(data, isComplete(), newDimensions);
     }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RList.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RList.java
index 34f5d8497d..02ce7f7447 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RList.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RList.java
@@ -104,7 +104,6 @@ public final class RList extends RVector implements RAbstractVector {
 
     @Override
     public RList copyWithNewDimensions(int[] newDimensions) {
-        this.makeShared();
         return RDataFactory.createList(data, newDimensions);
     }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RLogicalVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RLogicalVector.java
index 587bf87911..0a16ca316b 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RLogicalVector.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RLogicalVector.java
@@ -131,7 +131,6 @@ public final class RLogicalVector extends RVector implements RAbstractLogicalVec
 
     @Override
     public RLogicalVector copyWithNewDimensions(int[] newDimensions) {
-        this.makeShared();
         return RDataFactory.createLogicalVector(data, isComplete(), newDimensions);
     }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRawVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRawVector.java
index 33dbdc3628..1768deb636 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRawVector.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RRawVector.java
@@ -65,7 +65,6 @@ public final class RRawVector extends RVector implements RAbstractRawVector {
     }
 
     public RRawVector copyWithNewDimensions(int[] newDimensions) {
-        this.makeShared();
         return RDataFactory.createRawVector(data, newDimensions);
     }
 
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RStringVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RStringVector.java
index 340b3f63f3..ff2af527d6 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RStringVector.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RStringVector.java
@@ -135,7 +135,6 @@ public final class RStringVector extends RVector implements RAbstractStringVecto
 
     @Override
     public RStringVector copyWithNewDimensions(int[] newDimensions) {
-        this.makeShared();
         return RDataFactory.createStringVector(data, isComplete(), newDimensions);
     }
 
-- 
GitLab