From 5587562a70cc115bf9ef921cf2080c12a241ad2c Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Mon, 12 Dec 2016 09:40:30 -0800 Subject: [PATCH] Removed Android-specific code from stubs/hash.h This #ifdef in hash.h causes us to give up on finding a hash function on Android, when there do seem to be hash functions available in practice. I also had to tweak a macro in map.h that was disabling on Android an allocator construct() method that we need. --- src/google/protobuf/map.h | 1 - src/google/protobuf/stubs/hash.h | 11 +++-------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/google/protobuf/map.h b/src/google/protobuf/map.h index efd421e69d..47ced29ff3 100644 --- a/src/google/protobuf/map.h +++ b/src/google/protobuf/map.h @@ -615,7 +615,6 @@ class Map { #if __cplusplus >= 201103L && !defined(GOOGLE_PROTOBUF_OS_APPLE) && \ !defined(GOOGLE_PROTOBUF_OS_NACL) && \ - !defined(GOOGLE_PROTOBUF_OS_ANDROID) && \ !defined(GOOGLE_PROTOBUF_OS_EMSCRIPTEN) template void construct(NodeType* p, Args&&... args) { diff --git a/src/google/protobuf/stubs/hash.h b/src/google/protobuf/stubs/hash.h index 4eac7d5d25..bf0b88b4e7 100644 --- a/src/google/protobuf/stubs/hash.h +++ b/src/google/protobuf/stubs/hash.h @@ -41,15 +41,10 @@ #define GOOGLE_PROTOBUF_HAVE_HASH_MAP 1 #define GOOGLE_PROTOBUF_HAVE_HASH_SET 1 -// Android -#if defined(__ANDROID__) -# undef GOOGLE_PROTOBUF_HAVE_HASH_MAP -# undef GOOGLE_PROTOBUF_HAVE_HASH_MAP - // Use C++11 unordered_{map|set} if available. -#elif ((_LIBCPP_STD_VER >= 11) || \ - (((__cplusplus >= 201103L) || defined(__GXX_EXPERIMENTAL_CXX0X)) && \ - (__GLIBCXX__ > 20090421))) +#if ((_LIBCPP_STD_VER >= 11) || \ + (((__cplusplus >= 201103L) || defined(__GXX_EXPERIMENTAL_CXX0X)) && \ + (__GLIBCXX__ > 20090421))) # define GOOGLE_PROTOBUF_HAS_CXX11_HASH // For XCode >= 4.6: the compiler is clang with libc++.