Skip to content

Commit 9df5be8

Browse files
authored
Merge pull request paulmach#26 from paulmach/no-preallocate
osmpbf: do not preallocate nodes
2 parents 497f4f3 + fcd8141 commit 9df5be8

File tree

1 file changed

+3
-8
lines changed

1 file changed

+3
-8
lines changed

osmpbf/decode_data.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -309,17 +309,12 @@ func (dec *dataDecoder) extractDenseNodes() error {
309309
latOffset := dec.primitiveBlock.GetLatOffset()
310310
lonOffset := dec.primitiveBlock.GetLonOffset()
311311

312-
// we also assume all the iterators have the same length....
313-
314-
nodes := make([]osm.Node, dec.versions.Count(protoscan.WireTypeVarint))
315-
316312
var id, lat, lon, timestamp, changeset int64
317313
var uid, usid int32
318-
var index int
319314
for dec.versions.HasNext() {
320-
n := &nodes[index]
321-
n.Visible = true
322-
index++
315+
// NOTE: do not try pre-allocating an array of nodes because saving
316+
// just one will stop the GC from cleaning up the whole pre-allocated array.
317+
n := &osm.Node{Visible: true}
323318

324319
// ID
325320
v1, err := dec.ids.Sint64()

0 commit comments

Comments
 (0)