Skip to content

Commit 054ab35

Browse files
committed
Fix comparison of unicode arrays
1 parent 79ee79f commit 054ab35

File tree

2 files changed

+6
-5
lines changed
  • graalpython

2 files changed

+6
-5
lines changed

graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_array.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,7 @@
413413
*graalpython.lib-python.3.test.test_array.UnicodeTest.test_add
414414
*graalpython.lib-python.3.test.test_array.UnicodeTest.test_buffer_info
415415
*graalpython.lib-python.3.test.test_array.UnicodeTest.test_bug_782369
416+
*graalpython.lib-python.3.test.test_array.UnicodeTest.test_byteswap
416417
*graalpython.lib-python.3.test.test_array.UnicodeTest.test_cmp
417418
*graalpython.lib-python.3.test.test_array.UnicodeTest.test_constructor
418419
*graalpython.lib-python.3.test.test_array.UnicodeTest.test_constructor_with_iterable_argument

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/array/ArrayBuiltins.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -222,8 +222,8 @@ protected ArgumentClinicProvider getArgumentClinic() {
222222
@GenerateNodeFactory
223223
abstract static class EqNode extends PythonBinaryBuiltinNode {
224224

225-
@Specialization(guards = "canCompareBytes(left, right)")
226-
static boolean eqFastPath(PArray left, PArray right) {
225+
@Specialization(guards = "shouldCompareBytes(left, right)")
226+
static boolean eqBytes(PArray left, PArray right) {
227227
if (left.getLength() != right.getLength()) {
228228
return false;
229229
}
@@ -236,8 +236,8 @@ static boolean eqFastPath(PArray left, PArray right) {
236236
return true;
237237
}
238238

239-
@Specialization(replaces = "eqFastPath")
240-
static boolean eq(PArray left, PArray right,
239+
@Specialization(guards = "!shouldCompareBytes(left, right)")
240+
static boolean eqItems(PArray left, PArray right,
241241
@CachedLibrary(limit = "4") PythonObjectLibrary lib,
242242
@Cached ArrayNodes.GetValueNode getLeft,
243243
@Cached ArrayNodes.GetValueNode getRight) {
@@ -258,7 +258,7 @@ static Object eq(PArray left, Object right) {
258258
return PNotImplemented.NOT_IMPLEMENTED;
259259
}
260260

261-
protected static boolean canCompareBytes(PArray left, PArray right) {
261+
protected static boolean shouldCompareBytes(PArray left, PArray right) {
262262
return left.getFormat() == right.getFormat() && left.getFormat() != BufferFormat.DOUBLE && left.getFormat() != BufferFormat.FLOAT;
263263
}
264264
}

0 commit comments

Comments
 (0)