Skip to content

Commit 853b63b

Browse files
committed
fix specialization guard for bytearray.translate, remove dead code
1 parent 0a665aa commit 853b63b

File tree

3 files changed

+4
-53
lines changed

3 files changed

+4
-53
lines changed

graalpython/com.oracle.graal.python.test/src/tests/test_bytes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -688,8 +688,8 @@ def test_translate_no_change(self):
688688

689689
class ByteArrayTest(BaseLikeBytes, unittest.TestCase):
690690
type2test = bytearray
691-
692-
def test_translate_no_change(self):
691+
692+
def test_translate_no_change2(self):
693693
b = bytearray(b'ahoj')
694694
self.assertIsNot(b, b.translate(None))
695695
self.assertIsNot(b, b.translate(None, b''))

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/bytes/AbstractBytesBuiltins.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -932,7 +932,7 @@ public PByteArray translate(PByteArray self, @SuppressWarnings("unused") PNone t
932932
return factory().createByteArray(self.getSequenceStorage().copy());
933933
}
934934

935-
@Specialization
935+
@Specialization(guards = "!isNone(table)")
936936
public PBytes translate(PBytes self, Object table, @SuppressWarnings("unused") PNone delete) {
937937
byte[] bTable = getToBytesNode().execute(table);
938938
checkLengthOfTable(bTable);
@@ -945,7 +945,7 @@ public PBytes translate(PBytes self, Object table, @SuppressWarnings("unused") P
945945
return self;
946946
}
947947

948-
@Specialization
948+
@Specialization(guards = "!isNone(table)")
949949
public PByteArray translate(PByteArray self, Object table, @SuppressWarnings("unused") PNone delete) {
950950
byte[] bTable = getToBytesNode().execute(table);
951951
checkLengthOfTable(bTable);

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/bytes/ByteArrayBuiltins.java

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -633,55 +633,6 @@ private int getLength(SequenceStorage s) {
633633
}
634634
}
635635

636-
@Builtin(name = "translate", minNumOfPositionalArgs = 2, maxNumOfPositionalArgs = 3)
637-
@GenerateNodeFactory
638-
abstract static class TranslateNode extends PythonBuiltinNode {
639-
640-
@Child private SequenceStorageNodes.GetItemNode getSelfItemNode;
641-
@Child private SequenceStorageNodes.GetItemNode getTableItemNode;
642-
643-
@Specialization
644-
PByteArray translate(PByteArray self, PBytes table, @SuppressWarnings("unused") PNone delete) {
645-
return translate(self.getSequenceStorage(), table.getSequenceStorage());
646-
}
647-
648-
@Specialization
649-
PByteArray translate(PByteArray self, PByteArray table, @SuppressWarnings("unused") PNone delete) {
650-
return translate(self.getSequenceStorage(), table.getSequenceStorage());
651-
}
652-
653-
private PByteArray translate(SequenceStorage selfStorage, SequenceStorage tableStorage) {
654-
if (tableStorage.length() != 256) {
655-
throw raise(ValueError, "translation table must be 256 characters long");
656-
}
657-
byte[] result = new byte[selfStorage.length()];
658-
for (int i = 0; i < selfStorage.length(); i++) {
659-
int b = getGetSelfItemNode().executeInt(selfStorage, i);
660-
int t = getGetTableItemNode().executeInt(tableStorage, b);
661-
assert t >= 0 && t < 256;
662-
result[i] = (byte) t;
663-
}
664-
return factory().createByteArray(result);
665-
}
666-
667-
private SequenceStorageNodes.GetItemNode getGetSelfItemNode() {
668-
if (getSelfItemNode == null) {
669-
CompilerDirectives.transferToInterpreterAndInvalidate();
670-
getSelfItemNode = insert(SequenceStorageNodes.GetItemNode.create());
671-
}
672-
return getSelfItemNode;
673-
}
674-
675-
private SequenceStorageNodes.GetItemNode getGetTableItemNode() {
676-
if (getTableItemNode == null) {
677-
CompilerDirectives.transferToInterpreterAndInvalidate();
678-
getTableItemNode = insert(SequenceStorageNodes.GetItemNode.create());
679-
}
680-
return getTableItemNode;
681-
}
682-
683-
}
684-
685636
@Builtin(name = __GETITEM__, minNumOfPositionalArgs = 2)
686637
@GenerateNodeFactory
687638
abstract static class GetitemNode extends PythonBinaryBuiltinNode {

0 commit comments

Comments
 (0)