aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Oskar Świtalski <oskar.switalski@indoorway.com>2018-01-15 11:06:23 +0100
committerGravatar Oskar Świtalski <oskar.switalski@indoorway.com>2018-01-15 11:09:15 +0100
commit609f43ce12bbe2cb7e8f0114eaccd6252204d39d (patch)
treefa6ce785c6d7874c0f512acb0a6b8f7e5efd57f9
parent47b7d2c7cadf74ceec90fc5042232819cd0dd557 (diff)
Add guards against bswap_XX redefnitions
Signed-off-by: Oskar Świtalski <oskar.switalski@indoorway.com>
-rw-r--r--src/google/protobuf/stubs/port.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/google/protobuf/stubs/port.h b/src/google/protobuf/stubs/port.h
index 30bd7b1d..ebbf7da6 100644
--- a/src/google/protobuf/stubs/port.h
+++ b/src/google/protobuf/stubs/port.h
@@ -375,10 +375,14 @@ inline void GOOGLE_UNALIGNED_STORE64(void *p, uint64 v) {
#elif !defined(__GLIBC__) && !defined(__CYGWIN__)
+#ifndef bswap_16
static inline uint16 bswap_16(uint16 x) {
return static_cast<uint16>(((x & 0xFF) << 8) | ((x & 0xFF00) >> 8));
}
#define bswap_16(x) bswap_16(x)
+#endif
+
+#ifndef bswap_32
static inline uint32 bswap_32(uint32 x) {
return (((x & 0xFF) << 24) |
((x & 0xFF00) << 8) |
@@ -386,6 +390,9 @@ static inline uint32 bswap_32(uint32 x) {
((x & 0xFF000000) >> 24));
}
#define bswap_32(x) bswap_32(x)
+#endif
+
+#ifndef bswap_64
static inline uint64 bswap_64(uint64 x) {
return (((x & GOOGLE_ULONGLONG(0xFF)) << 56) |
((x & GOOGLE_ULONGLONG(0xFF00)) << 40) |
@@ -397,6 +404,7 @@ static inline uint64 bswap_64(uint64 x) {
((x & GOOGLE_ULONGLONG(0xFF00000000000000)) >> 56));
}
#define bswap_64(x) bswap_64(x)
+#endif
#endif