5 Jun
2023
5 Jun
'23
7:04 a.m.
Huw Davies (@huw) commented about dlls/winealsa.drv/mmdevdrv.c:
ret->ISimpleAudioVolume_iface.lpVtbl = &SimpleAudioVolume_Vtbl; ret->IChannelAudioVolume_iface.lpVtbl = &ChannelAudioVolume_Vtbl;
- ret->ref = 1; + ret->ref = !client;
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. 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()`. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2908#note_34615