[PATCH 3/3] dsound: Use AddRef to set the refcounts at object creation

Michael Stefaniuc mstefani at redhat.de
Sun Jan 15 17:14:35 CST 2012


---
 dlls/dsound/buffer.c  |    5 +++--
 dlls/dsound/primary.c |    5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c
index e2f2cc2..bc9b955 100644
--- a/dlls/dsound/buffer.c
+++ b/dlls/dsound/buffer.c
@@ -900,8 +900,8 @@ HRESULT IDirectSoundBufferImpl_Create(
 
 	TRACE("Created buffer at %p\n", dsb);
 
-	dsb->ref = 1;
-	dsb->numIfaces = 1;
+	dsb->ref = 0;
+	dsb->numIfaces = 0;
 	dsb->device = device;
 	dsb->IDirectSoundBuffer8_iface.lpVtbl = &dsbvt;
 	dsb->iks = NULL;
@@ -1012,6 +1012,7 @@ HRESULT IDirectSoundBufferImpl_Create(
 		}
 	}
 
+        IDirectSoundBuffer8_AddRef(&dsb->IDirectSoundBuffer8_iface);
 	*pdsb = dsb;
 	return err;
 }
diff --git a/dlls/dsound/primary.c b/dlls/dsound/primary.c
index a629fab..9363a31 100644
--- a/dlls/dsound/primary.c
+++ b/dlls/dsound/primary.c
@@ -1218,9 +1218,9 @@ HRESULT primarybuffer_create(DirectSoundDevice *device, IDirectSoundBufferImpl *
 		return DSERR_OUTOFMEMORY;
 	}
 
-        dsb->ref = 1;
+        dsb->ref = 0;
         dsb->ref3D = 0;
-        dsb->numIfaces = 1;
+        dsb->numIfaces = 0;
 	dsb->device = device;
 	dsb->IDirectSoundBuffer8_iface.lpVtbl = (IDirectSoundBuffer8Vtbl *)&dspbvt;
         dsb->IDirectSound3DListener_iface.lpVtbl = &ds3dlvt;
@@ -1253,6 +1253,7 @@ HRESULT primarybuffer_create(DirectSoundDevice *device, IDirectSoundBufferImpl *
                 device->pwfx->nBlockAlign, device->pwfx->wBitsPerSample,
                 device->pwfx->cbSize);
 
+        IDirectSoundBuffer_AddRef(&dsb->IDirectSoundBuffer8_iface);
 	*ppdsb = dsb;
 	return S_OK;
 }
-- 
1.7.6.5



More information about the wine-patches mailing list