diff options
| -rw-r--r-- | runtime/mirror/object.cc | 8 | ||||
| -rw-r--r-- | runtime/mirror/object.h | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/runtime/mirror/object.cc b/runtime/mirror/object.cc index 9578c97d82..42277238a3 100644 --- a/runtime/mirror/object.cc +++ b/runtime/mirror/object.cc @@ -135,11 +135,11 @@ Object* Object::Clone(Thread* self) { return copy; } -int32_t Object::GenerateIdentityHashCode() { - static AtomicInteger seed(987654321 + std::time(nullptr)); - int32_t expected_value, new_value; +uint32_t Object::GenerateIdentityHashCode() { + static Atomic<uint32_t> seed(987654321U + std::time(nullptr)); + uint32_t expected_value, new_value; do { - expected_value = static_cast<uint32_t>(seed.LoadRelaxed()); + expected_value = seed.LoadRelaxed(); new_value = expected_value * 1103515245 + 12345; } while ((expected_value & LockWord::kHashMask) == 0 || !seed.CompareExchangeWeakRelaxed(expected_value, new_value)); diff --git a/runtime/mirror/object.h b/runtime/mirror/object.h index b2b24209c7..0ce5231b40 100644 --- a/runtime/mirror/object.h +++ b/runtime/mirror/object.h @@ -451,7 +451,7 @@ class MANAGED LOCKABLE Object { } // Generate an identity hash code. - static int32_t GenerateIdentityHashCode(); + static uint32_t GenerateIdentityHashCode(); // A utility function that copies an object in a read barrier and // write barrier-aware way. This is internally used by Clone() and |