[ubsan] Fix UB in StringHasher::GetTrivialHash()
... which broke with 32-bit Smis. Tbr: verwaest@chromium.org No-Tree-Checks: true Bug: v8:9767 Change-Id: I459a5d807d87012ab72138f46b49362f16b6baa1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1862562 Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#64289}
This commit is contained in:
parent
1ec2ca266f
commit
145a8f4416
@ -34,8 +34,8 @@ uint32_t StringHasher::GetHashCore(uint32_t running_hash) {
|
||||
uint32_t StringHasher::GetTrivialHash(int length) {
|
||||
DCHECK_GT(length, String::kMaxHashCalcLength);
|
||||
// String hash of a large string is simply the length.
|
||||
return (length << String::kHashShift) | String::kIsNotArrayIndexMask |
|
||||
String::kIsNotIntegerIndexMask;
|
||||
return (static_cast<uint32_t>(length) << String::kHashShift) |
|
||||
String::kIsNotArrayIndexMask | String::kIsNotIntegerIndexMask;
|
||||
}
|
||||
|
||||
template <typename schar>
|
||||
|
Loading…
Reference in New Issue
Block a user