From efccc502606bed768e50a6cd5806d8eb13e4e935 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Thu, 17 Jan 2019 09:48:22 -0800 Subject: [PATCH] Export of internal Abseil changes. -- b7d4f72ebb8a052cb2c6dfbfb628200eb64585c5 by CJ Johnson : `Hash` -> `H` for AbslHashValue in InlinedVector PiperOrigin-RevId: 229765535 -- ecceb8dc7eb9fe576dd0b8f0e95b5d3c3e92795d by Abseil Team : fix ubsan error in Mutex on arm32 PiperOrigin-RevId: 229744897 GitOrigin-RevId: b7d4f72ebb8a052cb2c6dfbfb628200eb64585c5 Change-Id: Ic0fd2252f9838d5fceffc808d05a09a8bc872efc --- absl/container/inlined_vector.h | 14 +++++++------- absl/synchronization/mutex.cc | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/absl/container/inlined_vector.h b/absl/container/inlined_vector.h index 4849f7ead..649e904a9 100644 --- a/absl/container/inlined_vector.h +++ b/absl/container/inlined_vector.h @@ -808,8 +808,8 @@ class InlinedVector { } private: - template - friend Hash AbslHashValue(Hash, const InlinedVector& vec); + template + friend H AbslHashValue(H, const InlinedVector& vector); // Holds whether the vector is allocated or not in the lowest bit and the size // in the high bits: @@ -1358,11 +1358,11 @@ bool operator>=(const InlinedVector& a, // // Provides `absl::Hash` support for inlined vectors. You do not normally call // this function directly. -template -Hash AbslHashValue(Hash hash, const InlinedVector& vec) { - auto p = vec.data(); - auto n = vec.size(); - return Hash::combine(Hash::combine_contiguous(std::move(hash), p, n), n); +template +H AbslHashValue(H hash, const InlinedVector& vector) { + auto p = vector.data(); + auto n = vector.size(); + return H::combine(H::combine_contiguous(std::move(hash), p, n), n); } // ----------------------------------------------------------------------------- diff --git a/absl/synchronization/mutex.cc b/absl/synchronization/mutex.cc index f1b42db15..40ab7d22f 100644 --- a/absl/synchronization/mutex.cc +++ b/absl/synchronization/mutex.cc @@ -1841,7 +1841,7 @@ static void CheckForMutexCorruption(intptr_t v, const char* label) { // Test for either of two situations that should not occur in v: // kMuWriter and kMuReader // kMuWrWait and !kMuWait - const intptr_t w = v ^ kMuWait; + const uintptr_t w = v ^ kMuWait; // By flipping that bit, we can now test for: // kMuWriter and kMuReader in w // kMuWrWait and kMuWait in w