[PATCH 2/5] wined3d: Do not increment the reference count of the returned buffer in wined3d_device_get_stream_source().

Henri Verbeet hverbeet at codeweavers.com
Thu Sep 18 03:56:26 CDT 2014


None of the other getters increment the reference count either.
---
 dlls/d3d8/device.c        |    1 -
 dlls/d3d9/device.c        |    1 -
 dlls/ddraw/vertexbuffer.c |    2 --
 dlls/wined3d/device.c     |    2 --
 4 files changed, 6 deletions(-)

diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c
index 429b30c..2e74a41 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -2798,7 +2798,6 @@ static HRESULT WINAPI d3d8_device_GetStreamSource(IDirect3DDevice8 *iface,
         buffer_impl = wined3d_buffer_get_parent(wined3d_buffer);
         *buffer = &buffer_impl->IDirect3DVertexBuffer8_iface;
         IDirect3DVertexBuffer8_AddRef(*buffer);
-        wined3d_buffer_decref(wined3d_buffer);
     }
     else
     {
diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c
index 7b9b635..a40a6a1 100644
--- a/dlls/d3d9/device.c
+++ b/dlls/d3d9/device.c
@@ -2769,7 +2769,6 @@ static HRESULT WINAPI d3d9_device_GetStreamSource(IDirect3DDevice9Ex *iface,
         buffer_impl = wined3d_buffer_get_parent(wined3d_buffer);
         *buffer = &buffer_impl->IDirect3DVertexBuffer9_iface;
         IDirect3DVertexBuffer9_AddRef(*buffer);
-        wined3d_buffer_decref(wined3d_buffer);
     }
     else
     {
diff --git a/dlls/ddraw/vertexbuffer.c b/dlls/ddraw/vertexbuffer.c
index 5d77790..0f06fe5 100644
--- a/dlls/ddraw/vertexbuffer.c
+++ b/dlls/ddraw/vertexbuffer.c
@@ -159,8 +159,6 @@ static ULONG WINAPI d3d_vertex_buffer7_Release(IDirect3DVertexBuffer7 *iface)
                 0, &curVB, &offset, &stride);
         if (curVB == buffer->wineD3DVertexBuffer)
             wined3d_device_set_stream_source(buffer->ddraw->wined3d_device, 0, NULL, 0, 0);
-        if (curVB)
-            wined3d_buffer_decref(curVB); /* For the GetStreamSource */
 
         wined3d_vertex_declaration_decref(buffer->wineD3DVertexDeclaration);
         wined3d_buffer_decref(buffer->wineD3DVertexBuffer);
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index b9a0954..cbdf509 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1276,8 +1276,6 @@ HRESULT CDECL wined3d_device_get_stream_source(const struct wined3d_device *devi
 
     stream = &device->state.streams[stream_idx];
     *buffer = stream->buffer;
-    if (*buffer)
-        wined3d_buffer_incref(*buffer);
     if (offset)
         *offset = stream->offset;
     *stride = stream->stride;
-- 
1.7.10.4




More information about the wine-patches mailing list