Fix bug encoding integers larger than 128

This commit is contained in:
Mark Haines 2015-06-23 17:47:48 +01:00
parent 10e7e8123d
commit 8bf32c3248

View file

@ -21,7 +21,7 @@ std::size_t varint_length(
T value
) {
std::size_t result = 1;
while (value > 128U) {
while (value >= 128U) {
++result;
value >>= 7;
}
@ -34,8 +34,9 @@ std::uint8_t * varint_encode(
std::uint8_t * output,
T value
) {
while (value > 128U) {
while (value >= 128U) {
*(output++) = (0x7F & value) | 0x80;
value >>= 7;
}
(*output++) = value;
return output;