ReadVarint32 reads a signed int32 using zigzag decoding (compatible with Java's readVarint32).
(err *Error)
| 1277 | |
| 1278 | // ReadVarint32 reads a signed int32 using zigzag decoding (compatible with Java's readVarint32). |
| 1279 | func (b *ByteBuffer) ReadVarint32(err *Error) int32 { |
| 1280 | u := b.ReadVarUint32(err) |
| 1281 | v := int32(u >> 1) |
| 1282 | if u&1 != 0 { |
| 1283 | v = ^v |
| 1284 | } |
| 1285 | return v |
| 1286 | } |
| 1287 | |
| 1288 | // UnsafeReadVarint32 reads a varint32 without bounds checking. |
| 1289 | // Caller must ensure remaining() >= 5 before calling. |