Skip to content

Commit e1314a5

Browse files
committed
refactor: remove getCopyOfInternalArray from ArrayBasedSequenceStorage
1 parent 77cd2cf commit e1314a5

File tree

9 files changed

+38
-14
lines changed

9 files changed

+38
-14
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/common/SequenceStorageNodes.java

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3191,10 +3191,39 @@ public static Object[] executeUncached(SequenceStorage s) {
31913191
return SequenceStorageNodesFactory.CopyInternalArrayNodeGen.getUncached().execute(null, s);
31923192
}
31933193

3194-
@Specialization(limit = "MAX_BASIC_STORAGES", guards = "s.getClass() == cachedClass")
3195-
static Object[] doArrayBased(ArrayBasedSequenceStorage s,
3196-
@Cached("s.getClass()") Class<? extends ArrayBasedSequenceStorage> cachedClass) {
3197-
return cachedClass.cast(s).getCopyOfInternalArray();
3194+
@Specialization
3195+
static Object[] doInt(IntSequenceStorage storage) {
3196+
return storage.getCopyOfInternalArray();
3197+
}
3198+
3199+
@Specialization
3200+
static Object[] doDouble(DoubleSequenceStorage storage) {
3201+
return storage.getCopyOfInternalArray();
3202+
}
3203+
3204+
@Specialization
3205+
static Object[] doByte(ByteSequenceStorage storage) {
3206+
return storage.getCopyOfInternalArray();
3207+
}
3208+
3209+
@Specialization
3210+
static Object[] doLong(LongSequenceStorage storage) {
3211+
return storage.getCopyOfInternalArray();
3212+
}
3213+
3214+
@Specialization
3215+
static Object[] doObject(ObjectSequenceStorage storage) {
3216+
return storage.getCopyOfInternalArray();
3217+
}
3218+
3219+
@Specialization
3220+
static Object[] doBool(BoolSequenceStorage storage) {
3221+
return storage.getCopyOfInternalArray();
3222+
}
3223+
3224+
@Specialization
3225+
static Object[] doMro(MroSequenceStorage storage) {
3226+
return storage.getCopyOfInternalArray();
31983227
}
31993228

32003229
@Specialization
@@ -3582,7 +3611,7 @@ static Object[] doObjectSequenceStorage(ObjectSequenceStorage s) {
35823611
return s.getInternalArray();
35833612
}
35843613

3585-
@Specialization
3614+
@Specialization(guards = "!isObjectStorage(s)")
35863615
static Object[] doArrayBasedSequenceStorage(Node inliningTarget, ArrayBasedSequenceStorage s,
35873616
@Cached CopyInternalArrayNode copy) {
35883617
Object[] internalArray = copy.execute(inliningTarget, s);
@@ -3614,6 +3643,10 @@ private static Object[] materializeGeneric(Node inliningTarget, SequenceStorage
36143643
}
36153644
return barr;
36163645
}
3646+
3647+
protected static boolean isObjectStorage(ArrayBasedSequenceStorage storage) {
3648+
return storage instanceof ObjectSequenceStorage;
3649+
}
36173650
}
36183651

36193652
@GenerateUncached

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/sequence/storage/ArrayBasedSequenceStorage.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,6 @@ public abstract class ArrayBasedSequenceStorage extends BasicSequenceStorage {
4444

4545
public abstract Object[] getInternalArray();
4646

47-
public abstract Object[] getCopyOfInternalArray();
48-
4947
public abstract Object getInternalArrayObject();
5048

5149
public abstract Object getCopyOfInternalArrayObject();

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/sequence/storage/BoolSequenceStorage.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@ public Object getCopyOfInternalArrayObject() {
150150
return Arrays.copyOf(values, length);
151151
}
152152

153-
@Override
154153
public Object[] getCopyOfInternalArray() {
155154
return getInternalArray();
156155
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/sequence/storage/ByteSequenceStorage.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,6 @@ public Object getCopyOfInternalArrayObject() {
177177
return Arrays.copyOf(values, length);
178178
}
179179

180-
@Override
181180
public Object[] getCopyOfInternalArray() {
182181
return getInternalArray();
183182
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/sequence/storage/DoubleSequenceStorage.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,6 @@ public Object getCopyOfInternalArrayObject() {
162162
return Arrays.copyOf(values, length);
163163
}
164164

165-
@Override
166165
public Object[] getCopyOfInternalArray() {
167166
return getInternalArray();
168167
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/sequence/storage/IntSequenceStorage.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,6 @@ public Object getCopyOfInternalArrayObject() {
162162
return Arrays.copyOf(values, length);
163163
}
164164

165-
@Override
166165
public Object[] getCopyOfInternalArray() {
167166
return getInternalArray();
168167
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/sequence/storage/LongSequenceStorage.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,6 @@ public Object getCopyOfInternalArrayObject() {
165165
return Arrays.copyOf(values, length);
166166
}
167167

168-
@Override
169168
public Object[] getCopyOfInternalArray() {
170169
return getInternalArray();
171170
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/sequence/storage/MroSequenceStorage.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,6 @@ private static boolean invalidateAttributesInMROFinalAssumptions(List<Assumption
243243
return true;
244244
}
245245

246-
@Override
247246
public Object[] getCopyOfInternalArray() {
248247
return getInternalArray();
249248
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/sequence/storage/ObjectSequenceStorage.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ public Object[] getInternalArray() {
9191
return values;
9292
}
9393

94-
@Override
9594
public Object[] getCopyOfInternalArray() {
9695
return PythonUtils.arrayCopyOf(values, length);
9796
}

0 commit comments

Comments
 (0)