diff --git a/src/message.cpp b/src/message.cpp index 7eea4c24ff91d97d38c36aae2a1246fb4078eb41..343b09472d5f410489006396172b0c4ddff68137 100644 --- a/src/message.cpp +++ b/src/message.cpp @@ -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;