diff --git a/upb/pb/varint.int.h b/upb/pb/varint.int.h index 9c543118e1..5de12964a2 100644 --- a/upb/pb/varint.int.h +++ b/upb/pb/varint.int.h @@ -9,6 +9,7 @@ #include #include #include +#include #include "upb/upb.h" #ifdef __cplusplus @@ -130,6 +131,9 @@ UPB_INLINE uint64_t upb_vencode32(uint32_t val) { uint64_t ret = 0; UPB_ASSERT(bytes <= 5); memcpy(&ret, buf, bytes); +#ifdef UPB_BIG_ENDIAN + ret = bswap_64(ret); +#endif UPB_ASSERT(ret <= 0xffffffffffU); return ret; }