|
@@ -52,7 +52,7 @@ namespace internal {
|
|
|
|
|
|
inline size_t AlignUpTo8(size_t n) {
|
|
inline size_t AlignUpTo8(size_t n) {
|
|
// Align n to next multiple of 8 (from Hacker's Delight, Chapter 3.)
|
|
// Align n to next multiple of 8 (from Hacker's Delight, Chapter 3.)
|
|
- return (n + 7) & (size_t)-8;
|
|
|
|
|
|
+ return (n + 7) & static_cast<size_t>(-8);
|
|
}
|
|
}
|
|
|
|
|
|
// This class provides the core Arena memory allocation library. Different
|
|
// This class provides the core Arena memory allocation library. Different
|
|
@@ -306,8 +306,8 @@ class PROTOBUF_EXPORT ArenaImpl {
|
|
public:
|
|
public:
|
|
// kBlockHeaderSize is sizeof(Block), aligned up to the nearest multiple of 8
|
|
// kBlockHeaderSize is sizeof(Block), aligned up to the nearest multiple of 8
|
|
// to protect the invariant that pos is always at a multiple of 8.
|
|
// to protect the invariant that pos is always at a multiple of 8.
|
|
- static const size_t kBlockHeaderSize = (sizeof(Block) + 7) & (size_t)-8;
|
|
|
|
- static const size_t kSerialArenaSize = (sizeof(SerialArena) + 7) & (size_t)-8;
|
|
|
|
|
|
+ static const size_t kBlockHeaderSize = (sizeof(Block) + 7) & static_cast<size_t>(-8);
|
|
|
|
+ static const size_t kSerialArenaSize = (sizeof(SerialArena) + 7) & static_cast<size_t>(-8);
|
|
static_assert(kBlockHeaderSize % 8 == 0,
|
|
static_assert(kBlockHeaderSize % 8 == 0,
|
|
"kBlockHeaderSize must be a multiple of 8.");
|
|
"kBlockHeaderSize must be a multiple of 8.");
|
|
static_assert(kSerialArenaSize % 8 == 0,
|
|
static_assert(kSerialArenaSize % 8 == 0,
|