diff options
Diffstat (limited to 'vendor/codeberg.org/gruf/go-structr/queue.go')
-rw-r--r-- | vendor/codeberg.org/gruf/go-structr/queue.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/vendor/codeberg.org/gruf/go-structr/queue.go b/vendor/codeberg.org/gruf/go-structr/queue.go index 91092790a..d7c21daaa 100644 --- a/vendor/codeberg.org/gruf/go-structr/queue.go +++ b/vendor/codeberg.org/gruf/go-structr/queue.go @@ -276,6 +276,12 @@ func (q *Queue[T]) pop_n(n int, next func() *list_elem) []T { func (q *Queue[T]) index(value T) *indexed_item { item := new_indexed_item() + if cap(item.indexed) < len(q.indices) { + + // Preallocate item indices slice to prevent Go auto + // allocating overlying large slices we don't need. + item.indexed = make([]*index_entry, 0, len(q.indices)) + } // Set item value. item.data = value |