20 val |= (b & 0x7f) << shift;
22 if ((b & 0x80) == 0)
return val;
25 throw std::runtime_error(
"Invalid varint (more than 10 bytes)");
28 throw std::runtime_error(
"Invalid varint (extends past end of buffer)");
38 val |= (b & 0x7f) << shift;
40 if ((b & 0x80) == 0)
return val;
43 throw std::runtime_error(
"Invalid varint (more than 5 bytes)");
46 throw std::runtime_error(
"Invalid varint (extends past end of buffer)");
52 return static_cast<int32_t
>((val >> 1) ^ -(val & 1));
58 return (val >> 1) ^ -(val & 1);
67 throw std::runtime_error(
"Varints extend past end of buffer");
70 count -= (b >> 7) ^ 1;
uint32_t safeReadVarint32(const uint8_t *&p, const uint8_t *end)
Definition varint_safe.h:31
int32_t safeReadSignedVarint32(const uint8_t *&p, const uint8_t *end)
Definition varint_safe.h:49
int64_t safeReadSignedVarint64(const uint8_t *&p, const uint8_t *end)
Definition varint_safe.h:55
void safeSkipVarints(const uint8_t *&p, int count, const uint8_t *end)
Definition varint_safe.h:61
uint64_t safeReadVarint64(const uint8_t *&p, const uint8_t *end)
Definition varint_safe.h:13