diff options
author | Abseil Team <absl-team@google.com> | 2019-01-17T17·48-0800 |
---|---|---|
committer | Alex Strelnikov <strel@google.com> | 2019-01-17T19·35-0500 |
commit | efccc502606bed768e50a6cd5806d8eb13e4e935 (patch) | |
tree | cfeef235fa41c767f5570453ef86509fdc823aac /absl | |
parent | 5e6a78131f7bd5940218462c07d88cdefdd75dbe (diff) |
Export of internal Abseil changes.
-- b7d4f72ebb8a052cb2c6dfbfb628200eb64585c5 by CJ Johnson <johnsoncj@google.com>: `Hash` -> `H` for AbslHashValue in InlinedVector PiperOrigin-RevId: 229765535 -- ecceb8dc7eb9fe576dd0b8f0e95b5d3c3e92795d by Abseil Team <absl-team@google.com>: fix ubsan error in Mutex on arm32 PiperOrigin-RevId: 229744897 GitOrigin-RevId: b7d4f72ebb8a052cb2c6dfbfb628200eb64585c5 Change-Id: Ic0fd2252f9838d5fceffc808d05a09a8bc872efc
Diffstat (limited to 'absl')
-rw-r--r-- | absl/container/inlined_vector.h | 14 | ||||
-rw-r--r-- | 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 4849f7eaddaf..649e904a9704 100644 --- a/absl/container/inlined_vector.h +++ b/absl/container/inlined_vector.h @@ -808,8 +808,8 @@ class InlinedVector { } private: - template <typename Hash, typename TheT, size_t TheN, typename TheA> - friend Hash AbslHashValue(Hash, const InlinedVector<TheT, TheN, TheA>& vec); + template <typename H, typename TheT, size_t TheN, typename TheA> + friend H AbslHashValue(H, const InlinedVector<TheT, TheN, TheA>& 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<T, N, A>& a, // // Provides `absl::Hash` support for inlined vectors. You do not normally call // this function directly. -template <typename Hash, typename TheT, size_t TheN, typename TheA> -Hash AbslHashValue(Hash hash, const InlinedVector<TheT, TheN, TheA>& vec) { - auto p = vec.data(); - auto n = vec.size(); - return Hash::combine(Hash::combine_contiguous(std::move(hash), p, n), n); +template <typename H, typename TheT, size_t TheN, typename TheA> +H AbslHashValue(H hash, const InlinedVector<TheT, TheN, TheA>& 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 f1b42db15f99..40ab7d22f4bc 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 |