diff options
Diffstat (limited to 'vendor/codeberg.org/gruf/go-structr/queue.go')
-rw-r--r-- | vendor/codeberg.org/gruf/go-structr/queue.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/vendor/codeberg.org/gruf/go-structr/queue.go b/vendor/codeberg.org/gruf/go-structr/queue.go index 1e735762f..70c18c839 100644 --- a/vendor/codeberg.org/gruf/go-structr/queue.go +++ b/vendor/codeberg.org/gruf/go-structr/queue.go @@ -262,6 +262,9 @@ func (q *Queue[T]) index(value T) *indexed_item { // Set item value. item.data = value + // Get ptr to value data. + ptr := unsafe.Pointer(&value) + // Acquire key buf. buf := new_buffer() @@ -270,7 +273,10 @@ func (q *Queue[T]) index(value T) *indexed_item { idx := &(q.indices[i]) // Extract fields comprising index key. - parts := extract_fields(value, idx.fields) + parts := extract_fields(ptr, idx.fields) + if parts == nil { + continue + } // Calculate index key. key := idx.key(buf, parts) |