marshal length as unsigned varint
parent
fbbf29d167
commit
596f4de970
|
@ -17,7 +17,7 @@ func MarshalDeltaNodes(nodes []element.Node, buf []byte) []byte {
|
||||||
}
|
}
|
||||||
|
|
||||||
lastId := int64(0)
|
lastId := int64(0)
|
||||||
nextPos := binary.PutVarint(buf, int64(len(nodes)))
|
nextPos := binary.PutUvarint(buf, uint64(len(nodes)))
|
||||||
|
|
||||||
for i := range nodes {
|
for i := range nodes {
|
||||||
if len(buf)-nextPos < binary.MaxVarintLen64 {
|
if len(buf)-nextPos < binary.MaxVarintLen64 {
|
||||||
|
@ -59,20 +59,20 @@ func MarshalDeltaNodes(nodes []element.Node, buf []byte) []byte {
|
||||||
var varintErr = errors.New("unmarshal delta coords: missing data for varint or overflow")
|
var varintErr = errors.New("unmarshal delta coords: missing data for varint or overflow")
|
||||||
|
|
||||||
func UnmarshalDeltaNodes(buf []byte, nodes []element.Node) ([]element.Node, error) {
|
func UnmarshalDeltaNodes(buf []byte, nodes []element.Node) ([]element.Node, error) {
|
||||||
length, n := binary.Varint(buf)
|
length, n := binary.Uvarint(buf)
|
||||||
if n <= 0 {
|
if n <= 0 {
|
||||||
return nil, varintErr
|
return nil, varintErr
|
||||||
}
|
}
|
||||||
var offset = n
|
var offset = n
|
||||||
|
|
||||||
if int64(cap(nodes)) < length {
|
if uint64(cap(nodes)) < length {
|
||||||
nodes = make([]element.Node, length)
|
nodes = make([]element.Node, length)
|
||||||
} else {
|
} else {
|
||||||
nodes = nodes[:length]
|
nodes = nodes[:length]
|
||||||
}
|
}
|
||||||
|
|
||||||
lastId := int64(0)
|
lastId := int64(0)
|
||||||
for i := 0; int64(i) < length; i++ {
|
for i := 0; uint64(i) < length; i++ {
|
||||||
id, n := binary.Varint(buf[offset:])
|
id, n := binary.Varint(buf[offset:])
|
||||||
if n <= 0 {
|
if n <= 0 {
|
||||||
return nil, varintErr
|
return nil, varintErr
|
||||||
|
@ -84,7 +84,7 @@ func UnmarshalDeltaNodes(buf []byte, nodes []element.Node) ([]element.Node, erro
|
||||||
}
|
}
|
||||||
|
|
||||||
lastLong := int64(0)
|
lastLong := int64(0)
|
||||||
for i := 0; int64(i) < length; i++ {
|
for i := 0; uint64(i) < length; i++ {
|
||||||
long, n := binary.Varint(buf[offset:])
|
long, n := binary.Varint(buf[offset:])
|
||||||
if n <= 0 {
|
if n <= 0 {
|
||||||
return nil, varintErr
|
return nil, varintErr
|
||||||
|
@ -96,7 +96,7 @@ func UnmarshalDeltaNodes(buf []byte, nodes []element.Node) ([]element.Node, erro
|
||||||
}
|
}
|
||||||
|
|
||||||
lastLat := int64(0)
|
lastLat := int64(0)
|
||||||
for i := 0; int64(i) < length; i++ {
|
for i := 0; uint64(i) < length; i++ {
|
||||||
lat, n := binary.Varint(buf[offset:])
|
lat, n := binary.Varint(buf[offset:])
|
||||||
if n <= 0 {
|
if n <= 0 {
|
||||||
return nil, varintErr
|
return nil, varintErr
|
||||||
|
|
Loading…
Reference in New Issue