From 84d5317302462527560d0ab6597c5d0cb3035ca2 Mon Sep 17 00:00:00 2001 From: Michael Stefaniuc Date: Fri, 20 Jan 2012 00:53:51 +0100 Subject: [PATCH] dsound: Remove the now obsolete IDirectSoundBufferImpl_Destroy(). --- dlls/dsound/buffer.c | 19 +++++-------------- dlls/dsound/dsound.c | 4 ++-- dlls/dsound/dsound_private.h | 2 -- 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c index 18af3f9dd28..630d60ed3d1 100644 --- a/dlls/dsound/buffer.c +++ b/dlls/dsound/buffer.c @@ -964,6 +964,11 @@ HRESULT IDirectSoundBufferImpl_Create( void secondarybuffer_destroy(IDirectSoundBufferImpl *This) { + ULONG ref = InterlockedIncrement(&This->numIfaces); + + if (ref > 1) + WARN("Destroying buffer with %u in use interfaces\n", ref - 1); + DirectSoundDevice_RemoveBuffer(This->device, This); RtlDeleteResource(&This->lock); @@ -981,20 +986,6 @@ void secondarybuffer_destroy(IDirectSoundBufferImpl *This) TRACE("(%p) released\n", This); } -HRESULT IDirectSoundBufferImpl_Destroy( - IDirectSoundBufferImpl *pdsb) -{ - TRACE("(%p)\n",pdsb); - - /* This keeps the *_Destroy functions from possibly deleting - * this object until it is ready to be deleted */ - InterlockedIncrement(&pdsb->numIfaces); - - secondarybuffer_destroy(pdsb); - - return S_OK; -} - HRESULT IDirectSoundBufferImpl_Duplicate( DirectSoundDevice *device, IDirectSoundBufferImpl **ppdsb, diff --git a/dlls/dsound/dsound.c b/dlls/dsound/dsound.c index b3475ad9817..305bfeb0c46 100644 --- a/dlls/dsound/dsound.c +++ b/dlls/dsound/dsound.c @@ -1244,7 +1244,7 @@ ULONG DirectSoundDevice_Release(DirectSoundDevice * device) /* The kill event should have allowed the timer process to expire * but try to grab the lock just in case. Can't hold lock because - * IDirectSoundBufferImpl_Destroy also grabs the lock */ + * secondarybuffer_destroy also grabs the lock */ RtlAcquireResourceShared(&(device->buffer_list_lock), TRUE); RtlReleaseResource(&(device->buffer_list_lock)); @@ -1256,7 +1256,7 @@ ULONG DirectSoundDevice_Release(DirectSoundDevice * device) if (device->buffers) { WARN("%d secondary buffers not released\n", device->nrofbuffers); for( i=0;inrofbuffers;i++) - IDirectSoundBufferImpl_Destroy(device->buffers[i]); + secondarybuffer_destroy(device->buffers[i]); } if (device->primary) { diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h index 10bd2818cdf..a7209ca2125 100644 --- a/dlls/dsound/dsound_private.h +++ b/dlls/dsound/dsound_private.h @@ -199,8 +199,6 @@ HRESULT IDirectSoundBufferImpl_Create( DirectSoundDevice *device, IDirectSoundBufferImpl **ppdsb, LPCDSBUFFERDESC dsbd) DECLSPEC_HIDDEN; -HRESULT IDirectSoundBufferImpl_Destroy( - IDirectSoundBufferImpl *pdsb) DECLSPEC_HIDDEN; HRESULT IDirectSoundBufferImpl_Duplicate( DirectSoundDevice *device, IDirectSoundBufferImpl **ppdsb,