diff options
Diffstat (limited to 'runtime/intern_table.cc')
-rw-r--r-- | runtime/intern_table.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/runtime/intern_table.cc b/runtime/intern_table.cc index 9c05d3c574..3e1914604d 100644 --- a/runtime/intern_table.cc +++ b/runtime/intern_table.cc @@ -319,7 +319,9 @@ std::size_t InternTable::StringHashEquals::operator()(const GcRoot<mirror::Strin if (kIsDebugBuild) { Locks::mutator_lock_->AssertSharedHeld(Thread::Current()); } - return static_cast<size_t>(root.Read<kWithoutReadBarrier>()->GetHashCode()); + // An additional cast to prevent undesired sign extension. + return static_cast<size_t>( + static_cast<uint32_t>(root.Read<kWithoutReadBarrier>()->GetHashCode())); } bool InternTable::StringHashEquals::operator()(const GcRoot<mirror::String>& a, |