Skip to content

Commit ef931cd

Browse files
committed
Implement PySequenceArrayWrapper.equals using an identity check.
1 parent 9412ef1 commit ef931cd

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/PySequenceArrayWrapper.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
import com.oracle.graal.python.runtime.sequence.storage.NativeSequenceStorage;
7070
import com.oracle.graal.python.runtime.sequence.storage.SequenceStorage;
7171
import com.oracle.truffle.api.Assumption;
72+
import com.oracle.truffle.api.CompilerAsserts;
7273
import com.oracle.truffle.api.CompilerDirectives;
7374
import com.oracle.truffle.api.dsl.Cached;
7475
import com.oracle.truffle.api.dsl.Cached.Exclusive;
@@ -107,6 +108,29 @@ public int getElementAccessSize() {
107108
return elementAccessSize;
108109
}
109110

111+
@Override
112+
public int hashCode() {
113+
CompilerAsserts.neverPartOfCompilation();
114+
final int prime = 31;
115+
int result = 1;
116+
result = prime * result + getDelegate().hashCode();
117+
return result;
118+
}
119+
120+
@Override
121+
public boolean equals(Object obj) {
122+
if (this == obj) {
123+
return true;
124+
}
125+
if (obj == null) {
126+
return false;
127+
}
128+
if (getClass() != obj.getClass()) {
129+
return false;
130+
}
131+
return getDelegate() == ((PySequenceArrayWrapper) obj).getDelegate();
132+
}
133+
110134
@ExportMessage
111135
final long getArraySize(
112136
@Shared("callLenNode") @Cached LookupAndCallUnaryDynamicNode callLenNode,

0 commit comments

Comments
 (0)