Module: wine Branch: master Commit: d3c550d0ba36e8ed7c2c9c8741d59b7df01b96c2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d3c550d0ba36e8ed7c2c9c8741...
Author: Michael Stefaniuc mstefani@redhat.de Date: Sun Jan 5 23:38:33 2014 +0100
dmusic: Always AddRef the returned iface in QueryInterface.
---
dlls/dmusic/collection.c | 27 +++++++++------------------ 1 files changed, 9 insertions(+), 18 deletions(-)
diff --git a/dlls/dmusic/collection.c b/dlls/dmusic/collection.c index f98bc19..a673390 100644 --- a/dlls/dmusic/collection.c +++ b/dlls/dmusic/collection.c @@ -48,31 +48,22 @@ static HRESULT WINAPI IDirectMusicCollectionImpl_IDirectMusicCollection_QueryInt
TRACE("(%p/%p)->(%s, %p)\n", iface, This, debugstr_dmguid(riid), ret_iface);
- if (IsEqualIID(riid, &IID_IUnknown) || - IsEqualIID(riid, &IID_IDirectMusicCollection)) - { + *ret_iface = NULL; + + if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IDirectMusicCollection)) *ret_iface = iface; - IDirectMusicCollection_AddRef(iface); - return S_OK; - } else if (IsEqualIID(riid, &IID_IDirectMusicObject)) - { *ret_iface = &This->IDirectMusicObject_iface; - IDirectMusicCollection_AddRef(iface); - return S_OK; - } else if (IsEqualIID(riid, &IID_IPersistStream)) - { *ret_iface = &This->IPersistStream_iface; - IDirectMusicCollection_AddRef(iface); - return S_OK; + else + { + WARN("(%p/%p)->(%s, %p): not found\n", iface, This, debugstr_dmguid(riid), ret_iface); + return E_NOINTERFACE; }
- *ret_iface = NULL; - - WARN("(%p/%p)->(%s, %p): not found\n", iface, This, debugstr_dmguid(riid), ret_iface); - - return E_NOINTERFACE; + IUnknown_AddRef((IUnknown*)*ret_iface); + return S_OK; }
static ULONG WINAPI IDirectMusicCollectionImpl_IDirectMusicCollection_AddRef(LPDIRECTMUSICCOLLECTION iface)