5 Jun
2023
5 Jun
'23
11:57 p.m.
On Mon Jun 5 21:58:11 2023 +0000, Davide Beatrici wrote:
This doesn't look right.
Note that the difference between the pulse and the other drivers is that pulse's `GetService()` calls `AddRef()` in all success cases. More specifically, the other drivers call `AddRef()` only when the session wrapper already exists. I didn't catch that (and the tests didn't either apparently), sorry. I think the other drivers do this in a more logical way - have the session wrapper constructor return an object with `ref` set to one and don't `AddRef()` it in `GetService()`. Agreed. I also added the logic to (un)lock sessions in a separate commit, as it was missing in `winepulse`.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/2908#note_34744