Davide Beatrici (@davidebeatrici) commented about dlls/mmdevapi/audiosession.c:
+ +#define NULL_PTR_ERR MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, RPC_X_NULL_REF_POINTER) + +WINE_DEFAULT_DEBUG_CHANNEL(mmdevapi); + +static inline struct audio_session_wrapper *impl_from_IAudioSessionControl2(IAudioSessionControl2 *iface) +{ + return CONTAINING_RECORD(iface, struct audio_session_wrapper, IAudioSessionControl2_iface); +} + +static void AudioClient_DecRef(IAudioClient3 *iface) +{ + struct audio_client *This = CONTAINING_RECORD(iface, struct audio_client, IAudioClient3_iface); + ULONG ref = InterlockedDecrement(&This->ref); + TRACE("(%p) Refcount now %lu\n", This, ref); +} This function assumes `ref` never reaches 0, is it guaranteed though?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/2669#note_30322