Skip to content

Commit 9ff7c81

Browse files
committed
Runtime: Fixed Bytes hash function so that it matches PyBytes
1 parent 29476dd commit 9ff7c81

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

src/runtime/PyObject.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,10 @@ size_t ValueHash::operator()(const Value &value) const
6969
}
7070
},
7171
[](const String &s) -> size_t { return std::hash<std::string>{}(s.s); },
72-
[](const Bytes &b) -> size_t { return ::bit_cast<size_t>(b.b.data()); },
72+
[](const Bytes &b) -> size_t {
73+
std::string_view sv{ bit_cast<char *>(b.b.data()), b.b.size() };
74+
return static_cast<int64_t>(std::hash<std::string_view>{}(sv));
75+
},
7376
[](const Ellipsis &) -> size_t { return ::bit_cast<size_t>(py_ellipsis()); },
7477
[](const NameConstant &c) -> size_t {
7578
if (std::holds_alternative<bool>(c.value)) {

0 commit comments

Comments
 (0)