io: use optimized Read/WriteUXX for Read/WriteVarUint()

This commit is contained in:
Roman Khimov 2019-12-12 19:20:03 +03:00
parent 54d888ba70
commit 0b14916d79
2 changed files with 11 additions and 19 deletions

View file

@ -169,23 +169,16 @@ func (r *BinReader) ReadVarUint() uint64 {
return 0
}
var b uint8
r.Err = binary.Read(r.r, binary.LittleEndian, &b)
var b = r.ReadByte()
if b == 0xfd {
var v uint16
r.Err = binary.Read(r.r, binary.LittleEndian, &v)
return uint64(v)
return uint64(r.ReadU16LE())
}
if b == 0xfe {
var v uint32
r.Err = binary.Read(r.r, binary.LittleEndian, &v)
return uint64(v)
return uint64(r.ReadU32LE())
}
if b == 0xff {
var v uint64
r.Err = binary.Read(r.r, binary.LittleEndian, &v)
return v
return r.ReadU64LE()
}
return uint64(b)