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`.