瀏覽代碼

Add guards against bswap_XX redefnitions

Signed-off-by: Oskar Świtalski <oskar.switalski@indoorway.com>
Oskar Świtalski 7 年之前
父節點
當前提交
609f43ce12
共有 1 個文件被更改,包括 8 次插入0 次删除
  1. 8 0
      src/google/protobuf/stubs/port.h

+ 8 - 0
src/google/protobuf/stubs/port.h

@@ -375,10 +375,14 @@ inline void GOOGLE_UNALIGNED_STORE64(void *p, uint64 v) {
 
 
 #elif !defined(__GLIBC__) && !defined(__CYGWIN__)
 #elif !defined(__GLIBC__) && !defined(__CYGWIN__)
 
 
+#ifndef bswap_16
 static inline uint16 bswap_16(uint16 x) {
 static inline uint16 bswap_16(uint16 x) {
   return static_cast<uint16>(((x & 0xFF) << 8) | ((x & 0xFF00) >> 8));
   return static_cast<uint16>(((x & 0xFF) << 8) | ((x & 0xFF00) >> 8));
 }
 }
 #define bswap_16(x) bswap_16(x)
 #define bswap_16(x) bswap_16(x)
+#endif
+
+#ifndef bswap_32
 static inline uint32 bswap_32(uint32 x) {
 static inline uint32 bswap_32(uint32 x) {
   return (((x & 0xFF) << 24) |
   return (((x & 0xFF) << 24) |
           ((x & 0xFF00) << 8) |
           ((x & 0xFF00) << 8) |
@@ -386,6 +390,9 @@ static inline uint32 bswap_32(uint32 x) {
           ((x & 0xFF000000) >> 24));
           ((x & 0xFF000000) >> 24));
 }
 }
 #define bswap_32(x) bswap_32(x)
 #define bswap_32(x) bswap_32(x)
+#endif
+
+#ifndef bswap_64
 static inline uint64 bswap_64(uint64 x) {
 static inline uint64 bswap_64(uint64 x) {
   return (((x & GOOGLE_ULONGLONG(0xFF)) << 56) |
   return (((x & GOOGLE_ULONGLONG(0xFF)) << 56) |
           ((x & GOOGLE_ULONGLONG(0xFF00)) << 40) |
           ((x & GOOGLE_ULONGLONG(0xFF00)) << 40) |
@@ -397,6 +404,7 @@ static inline uint64 bswap_64(uint64 x) {
           ((x & GOOGLE_ULONGLONG(0xFF00000000000000)) >> 56));
           ((x & GOOGLE_ULONGLONG(0xFF00000000000000)) >> 56));
 }
 }
 #define bswap_64(x) bswap_64(x)
 #define bswap_64(x) bswap_64(x)
+#endif
 
 
 #endif
 #endif