From 1a8ba0918f81f04c27a49e0f8bf80c4145efcbed Mon Sep 17 00:00:00 2001 From: Cole Brown Date: Thu, 29 Nov 2018 17:59:38 -0500 Subject: [PATCH] Fix bug in VarintSize :100644 100644 79ebe2f b0ced77 M varint.go --- varint.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/varint.go b/varint.go index 79ebe2f..0b8bf11 100644 --- a/varint.go +++ b/varint.go @@ -8,7 +8,13 @@ import ( // VarintSize returns the size (in bytes) of `num` encoded as a varint. func VarintSize(num int) int { - return bits.Len(uint(num))/7 + 1 + bits := bits.Len(uint(num)) + q, r := bits/7, bits%7 + size := q + if r > 0 { + size++ + } + return size } // CodeToVarint converts an integer to a varint-encoded []byte