From 563b5e66fc0dfe0abc4a4b8c96f0f89ef71c3422 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Thu, 27 Nov 2025 01:52:13 +0900 Subject: [PATCH] internal/pipewire: simplify spa_dict appends This change uses the (somewhat) newly exposed MarshalAppend which improves readability. Signed-off-by: Ophestra --- internal/pipewire/pod.go | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/internal/pipewire/pod.go b/internal/pipewire/pod.go index 9205049..97ba4d0 100644 --- a/internal/pipewire/pod.go +++ b/internal/pipewire/pod.go @@ -441,30 +441,26 @@ type SPADict struct { Items []SPADictItem } +// MarshalPOD satisfies [PODMarshaler] as [SPADict] violates the POD type system. func (d *SPADict) MarshalPOD() ([]byte, error) { - return appendInner(nil, func(data []byte) ([]byte, error) { - data = binary.NativeEndian.AppendUint32(data, SPA_TYPE_Struct) - if extraData, err := Marshal(d.NItems); err != nil { - return data, err - } else { - data = append(data, extraData...) + return appendInner(nil, func(dataPrefix []byte) (data []byte, err error) { + data = binary.NativeEndian.AppendUint32(dataPrefix, SPA_TYPE_Struct) + if data, err = MarshalAppend(data, d.NItems); err != nil { + return } for i := range d.Items { - if extraData, err := Marshal(d.Items[i].Key); err != nil { - return data, err - } else { - data = append(data, extraData...) + if data, err = MarshalAppend(data, d.Items[i].Key); err != nil { + return } - if extraData, err := Marshal(d.Items[i].Value); err != nil { - return data, err - } else { - data = append(data, extraData...) + if data, err = MarshalAppend(data, d.Items[i].Value); err != nil { + return } } - return data, nil + return }) } +// UnmarshalPOD satisfies [PODUnmarshaler] as [SPADict] violates the POD type system. func (d *SPADict) UnmarshalPOD(data []byte) (Word, error) { var wireSize Word if err := unmarshalCheckTypeBounds(&data, SPA_TYPE_Struct, &wireSize); err != nil {