Module: wine Branch: master Commit: 8c3f9c8c7efc6a2b183e941ed753a9a7e0579753 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8c3f9c8c7efc6a2b183e941ed7...
Author: Maarten Lankhorst maarten@codeweavers.com Date: Sun Nov 11 16:00:41 2007 +0100
dsound: Reassign pointers back to null when destroying structure.
---
dlls/dsound/dsound.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/dlls/dsound/dsound.c b/dlls/dsound/dsound.c index ea94713..7b2d5d6 100644 --- a/dlls/dsound/dsound.c +++ b/dlls/dsound/dsound.c @@ -359,6 +359,7 @@ static ULONG WINAPI IDirectSound_IUnknown_Release( ULONG ref = InterlockedDecrement(&(This->ref)); TRACE("(%p) ref was %d\n", This, ref + 1); if (!ref) { + ((IDirectSoundImpl*)This->pds)->pUnknown = NULL; IDirectSoundImpl_Release(This->pds); HeapFree(GetProcessHeap(), 0, This); TRACE("(%p) released\n", This); @@ -437,6 +438,7 @@ static ULONG WINAPI IDirectSound_IDirectSound_Release( ULONG ref = InterlockedDecrement(&(This->ref)); TRACE("(%p) ref was %d\n", This, ref + 1); if (!ref) { + ((IDirectSoundImpl*)This->pds)->pDS = NULL; IDirectSoundImpl_Release(This->pds); HeapFree(GetProcessHeap(), 0, This); TRACE("(%p) released\n", This); @@ -598,6 +600,7 @@ static ULONG WINAPI IDirectSound8_IUnknown_Release( ULONG ref = InterlockedDecrement(&(This->ref)); TRACE("(%p) ref was %d\n", This, ref + 1); if (!ref) { + ((IDirectSoundImpl*)This->pds)->pUnknown = NULL; IDirectSoundImpl_Release(This->pds); HeapFree(GetProcessHeap(), 0, This); TRACE("(%p) released\n", This); @@ -676,6 +679,7 @@ static ULONG WINAPI IDirectSound8_IDirectSound_Release( ULONG ref = InterlockedDecrement(&(This->ref)); TRACE("(%p) ref was %d\n", This, ref + 1); if (!ref) { + ((IDirectSoundImpl*)This->pds)->pDS = NULL; IDirectSoundImpl_Release(This->pds); HeapFree(GetProcessHeap(), 0, This); TRACE("(%p) released\n", This); @@ -837,6 +841,7 @@ static ULONG WINAPI IDirectSound8_IDirectSound8_Release( ULONG ref = InterlockedDecrement(&(This->ref)); TRACE("(%p) ref was %d\n", This, ref + 1); if (!ref) { + ((IDirectSoundImpl*)This->pds)->pDS8 = NULL; IDirectSoundImpl_Release(This->pds); HeapFree(GetProcessHeap(), 0, This); TRACE("(%p) released\n", This);