[PATCH 1/5] d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetIndices().

Henri Verbeet hverbeet at codeweavers.com
Sun Apr 29 13:52:02 CDT 2012


---
 dlls/d3d9/device.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c
index 987867c..e497ce7 100644
--- a/dlls/d3d9/device.c
+++ b/dlls/d3d9/device.c
@@ -2575,6 +2575,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetIndices(IDirect3DDevice9Ex *iface,
 {
     IDirect3DDevice9Impl *This = impl_from_IDirect3DDevice9Ex(iface);
     struct wined3d_buffer *retIndexData = NULL;
+    IDirect3DIndexBuffer9Impl *buffer_impl;
     HRESULT hr;
 
     TRACE("iface %p, buffer %p.\n", iface, ppIndexData);
@@ -2587,7 +2588,8 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetIndices(IDirect3DDevice9Ex *iface,
     hr = wined3d_device_get_index_buffer(This->wined3d_device, &retIndexData);
     if (SUCCEEDED(hr) && retIndexData)
     {
-        *ppIndexData = wined3d_buffer_get_parent(retIndexData);
+        buffer_impl = wined3d_buffer_get_parent(retIndexData);
+        *ppIndexData = &buffer_impl->IDirect3DIndexBuffer9_iface;
         IDirect3DIndexBuffer9_AddRef(*ppIndexData);
         wined3d_buffer_decref(retIndexData);
     }
-- 
1.7.3.4




More information about the wine-patches mailing list