aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--internal/pipewire/pipewire.go9
1 files changed, 4 insertions, 5 deletions
diff --git a/internal/pipewire/pipewire.go b/internal/pipewire/pipewire.go
index 6270429e..ed6b0e91 100644
--- a/internal/pipewire/pipewire.go
+++ b/internal/pipewire/pipewire.go
@@ -63,7 +63,7 @@ type Context struct {
generation Long
// Pending file descriptors to be sent with the next message.
pendingFiles []int
- // File count kept track of in [Header].
+ // File count already kept track of in [Header].
headerFiles int
// Files from the server. This is discarded on every Roundtrip so eventProxy
// implementations must make sure to close them to avoid leaking fds.
@@ -585,6 +585,9 @@ func (ctx *Context) roundtrip() (err error) {
if err = ctx.sendmsg(ctx.buf, ctx.pendingFiles...); err != nil {
return
}
+ ctx.buf = ctx.buf[:0]
+ ctx.pendingFiles = ctx.pendingFiles[:0]
+ ctx.headerFiles = 0
defer func() {
var danglingFiles DanglingFilesError
@@ -661,10 +664,6 @@ func (ctx *Context) consume(receiveRemaining []byte) (remaining []byte, err erro
return
}()
- ctx.buf = ctx.buf[:0]
- ctx.pendingFiles = ctx.pendingFiles[:0]
- ctx.headerFiles = 0
-
if remaining, err = ctx.recvmsg(receiveRemaining); err != nil {
return
}