fix: avoid warnings with MSVC

In both cases a `size_t` was being converted to a `uint32_t`. These
headers are used from application code, or at least from generated code,
and the application may be compiling with more warnings enabled than
normal.
pull/12762/head
Carlos O'Ryan 2 years ago
parent 20d22a92fe
commit 0313d61e6f
  1. 2
      src/google/protobuf/has_bits.h
  2. 3
      src/google/protobuf/string_block.h

@ -71,7 +71,7 @@ class HasBits {
}
void Or(const HasBits<doublewords>& rhs) {
for (size_t i = 0; i < doublewords; i++) has_bits_[i] |= rhs[i];
for (size_t i = 0; i < doublewords; i++) has_bits_[i] |= rhs.has_bits_[i];
}
bool empty() const;

@ -145,7 +145,8 @@ inline StringBlock* StringBlock::Emplace(void* p, size_t n, StringBlock* next) {
ABSL_DCHECK_EQ(n, NextSize(next));
uint32_t doubled = static_cast<uint32_t>(n) * 2;
uint32_t next_size = next ? std::min(doubled, max_size()) : min_size();
return new (p) StringBlock(next, false, RoundedSize(n), next_size);
return new (p) StringBlock(
next, false, RoundedSize(static_cast<uint32_t>(n)), next_size);
}
inline StringBlock* StringBlock::New(StringBlock* next) {

Loading…
Cancel
Save