Skip to content

Commit 18e95ca

Browse files
committed
feat: addressing review comments
1 parent b337bd5 commit 18e95ca

File tree

5 files changed

+20
-22
lines changed

5 files changed

+20
-22
lines changed

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

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import static com.oracle.graal.python.runtime.sequence.storage.SequenceStorage.StorageType.Uninitialized;
4141

4242
import java.lang.reflect.Array;
43-
import java.math.BigInteger;
4443
import java.util.Arrays;
4544

4645
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
@@ -703,7 +702,7 @@ protected static SequenceStorage doMroSequenceStorage(MroSequenceStorage storage
703702
newArray[j] = values[i];
704703
}
705704

706-
return new MroSequenceStorage(storage.getClassName(), newArray);
705+
return new ObjectSequenceStorage(newArray);
707706
}
708707

709708
@Specialization
@@ -3153,7 +3152,7 @@ static SequenceStorage doObject(ObjectSequenceStorage storage) {
31533152

31543153
@Specialization
31553154
static SequenceStorage doMro(MroSequenceStorage storage) {
3156-
return new MroSequenceStorage(storage.getClassName(), PythonUtils.arrayCopyOf(storage.getInternalClassArray(), storage.length()));
3155+
return new ObjectSequenceStorage(PythonUtils.arrayCopyOf(storage.getInternalClassArray(), storage.length()));
31573156
}
31583157

31593158
@Specialization
@@ -3221,7 +3220,7 @@ static Object[] doBool(BoolSequenceStorage storage) {
32213220

32223221
@Specialization
32233222
static Object[] doMro(MroSequenceStorage storage) {
3224-
throw CompilerDirectives.shouldNotReachHere();
3223+
return storage.getCopyOfInternalArray();
32253224
}
32263225

32273226
@Specialization
@@ -3614,7 +3613,7 @@ static Object[] doMroSequenceStorage(MroSequenceStorage s) {
36143613
return s.getInternalClassArray();
36153614
}
36163615

3617-
@Specialization(guards = "!isObjectStorage(s) || isMroStorage(s)")
3616+
@Specialization(guards = {"!isObjectStorage(s)", "!isMroStorage(s)"})
36183617
static Object[] doArrayBasedSequenceStorage(Node inliningTarget, ArrayBasedSequenceStorage s,
36193618
@Cached CopyInternalArrayNode copy) {
36203619
Object[] internalArray = copy.execute(inliningTarget, s);
@@ -3633,7 +3632,7 @@ static Object[] doEmptySequenceStorage(@SuppressWarnings("unused") EmptySequence
36333632
return PythonUtils.EMPTY_OBJECT_ARRAY;
36343633
}
36353634

3636-
@Specialization(replaces = {"doObjectSequenceStorage", "doArrayBasedSequenceStorage", "doNativeObject", "doEmptySequenceStorage"})
3635+
@Specialization(guards = {"!isObjectStorage(s)", "!isMroStorage(s)"}, replaces = {"doArrayBasedSequenceStorage", "doNativeObject", "doEmptySequenceStorage"})
36373636
static Object[] doGeneric(Node inliningTarget, SequenceStorage s,
36383637
@Exclusive @Cached GetItemScalarNode getItemNode) {
36393638
return materializeGeneric(inliningTarget, s, s.length(), getItemNode);
@@ -3647,11 +3646,11 @@ private static Object[] materializeGeneric(Node inliningTarget, SequenceStorage
36473646
return barr;
36483647
}
36493648

3650-
protected static boolean isObjectStorage(ArrayBasedSequenceStorage storage) {
3649+
protected static boolean isObjectStorage(SequenceStorage storage) {
36513650
return storage instanceof ObjectSequenceStorage;
36523651
}
36533652

3654-
protected static boolean isMroStorage(ArrayBasedSequenceStorage storage) {
3653+
protected static boolean isMroStorage(SequenceStorage storage) {
36553654
return storage instanceof MroSequenceStorage;
36563655
}
36573656
}
@@ -3691,6 +3690,7 @@ static boolean isObjectSequenceStorage(SequenceStorage s) {
36913690

36923691
@GenerateUncached
36933692
@GenerateInline
3693+
@ImportStatic(PInt.class)
36943694
public abstract static class InsertItemArrayBasedStorageNode extends Node {
36953695

36963696
public static SequenceStorage executeUncached(ArrayBasedSequenceStorage storage, int index, Object value) {
@@ -3723,9 +3723,9 @@ static SequenceStorage doIntWithLongStorage(LongSequenceStorage storage, int idx
37233723
return storage;
37243724
}
37253725

3726-
@Specialization
3727-
static SequenceStorage doBigIntWithLongStorage(LongSequenceStorage storage, int idx, BigInteger value) {
3728-
storage.insertLongItem(idx, PInt.longValue(value));
3726+
@Specialization(guards = "isIntRange(value)")
3727+
static SequenceStorage doLongWithIntStorage(IntSequenceStorage storage, int idx, long value) {
3728+
storage.insertIntItem(idx, (int) value);
37293729
return storage;
37303730
}
37313731

@@ -3735,12 +3735,6 @@ static SequenceStorage doByteWithByteStorage(ByteSequenceStorage storage, int id
37353735
return storage;
37363736
}
37373737

3738-
@Specialization
3739-
static SequenceStorage doIntWithByteStorage(ByteSequenceStorage storage, int idx, int value) {
3740-
storage.insertByteItem(idx, (byte) value);
3741-
return storage;
3742-
}
3743-
37443738
@Specialization
37453739
static SequenceStorage doBoolStorage(BoolSequenceStorage storage, int idx, boolean value) {
37463740
storage.insertBoolItem(idx, value);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* The Universal Permissive License (UPL), Version 1.0

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/iterator/IteratorBuiltins.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2017, 2023, Oracle and/or its affiliates.
2+
* Copyright (c) 2024, Oracle and/or its affiliates.
33
* Copyright (c) 2014, Regents of the University of California
44
*
55
* All rights reserved.

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/iterator/PObjectSequenceIterator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2017, 2021, Oracle and/or its affiliates.
2+
* Copyright (c) 2024, Oracle and/or its affiliates.
33
* Copyright (c) 2013, Regents of the University of California
44
*
55
* All rights reserved.

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,14 @@
4141
package com.oracle.graal.python.runtime.sequence.storage;
4242

4343
import java.util.ArrayList;
44-
import java.util.Arrays;
4544
import java.util.Collections;
4645
import java.util.HashMap;
4746
import java.util.List;
4847
import java.util.Map;
4948
import java.util.function.Predicate;
5049

5150
import com.oracle.graal.python.builtins.objects.type.PythonAbstractClass;
51+
import com.oracle.graal.python.util.PythonUtils;
5252
import com.oracle.truffle.api.Assumption;
5353
import com.oracle.truffle.api.CompilerAsserts;
5454
import com.oracle.truffle.api.CompilerDirectives;
@@ -132,7 +132,11 @@ public Object getInternalArrayObject() {
132132

133133
@Override
134134
public Object getCopyOfInternalArrayObject() {
135-
return Arrays.copyOf(values, length);
135+
return getCopyOfInternalArray();
136+
}
137+
138+
public Object[] getCopyOfInternalArray() {
139+
return PythonUtils.arrayCopyOf(values, length);
136140
}
137141

138142
@SuppressWarnings("unused")

0 commit comments

Comments
 (0)