Module: wine Branch: master Commit: fcae01672f2d480597a40850ff0386268b24791d URL: http://source.winehq.org/git/wine.git/?a=commit;h=fcae01672f2d480597a40850ff...
Author: Aric Stewart aric@codeweavers.com Date: Wed Feb 26 18:03:35 2014 +0900
dmime: Do not try to query a NULL direct sound buffer.
---
dlls/dmime/audiopath.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-)
diff --git a/dlls/dmime/audiopath.c b/dlls/dmime/audiopath.c index 6b7a2f0..66e218c 100644 --- a/dlls/dmime/audiopath.c +++ b/dlls/dmime/audiopath.c @@ -108,21 +108,22 @@ static HRESULT WINAPI IDirectMusicAudioPathImpl_IDirectMusicAudioPath_GetObjectI FIXME("(%p, %d, %d, %d, %s, %d, %s, %p): stub\n", This, dwPChannel, dwStage, dwBuffer, debugstr_dmguid(guidObject), dwIndex, debugstr_dmguid(iidInterface), ppObject); switch (dwStage) { - case DMUS_PATH_BUFFER: - { - if (IsEqualIID (iidInterface, &IID_IDirectSoundBuffer8)) { - IDirectSoundBuffer8_QueryInterface (This->pDSBuffer, &IID_IDirectSoundBuffer8, ppObject); - TRACE("returning %p\n",*ppObject); - return S_OK; - } else if (IsEqualIID (iidInterface, &IID_IDirectSound3DBuffer)) { - IDirectSoundBuffer8_QueryInterface (This->pDSBuffer, &IID_IDirectSound3DBuffer, ppObject); - TRACE("returning %p\n",*ppObject); - return S_OK; - } else { - FIXME("Bad iid\n"); - } - } - break; + case DMUS_PATH_BUFFER: + if (This->pDSBuffer) + { + if (IsEqualIID (iidInterface, &IID_IDirectSoundBuffer8)) { + IDirectSoundBuffer8_QueryInterface (This->pDSBuffer, &IID_IDirectSoundBuffer8, ppObject); + TRACE("returning %p\n",*ppObject); + return S_OK; + } else if (IsEqualIID (iidInterface, &IID_IDirectSound3DBuffer)) { + IDirectSoundBuffer8_QueryInterface (This->pDSBuffer, &IID_IDirectSound3DBuffer, ppObject); + TRACE("returning %p\n",*ppObject); + return S_OK; + } else { + FIXME("Bad iid\n"); + } + } + break;
case DMUS_PATH_PRIMARY_BUFFER: { if (IsEqualIID (iidInterface, &IID_IDirectSound3DListener)) {