From a495b7af486619d501589305a81d5ba61fa742da Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Thu, 26 Apr 2012 21:11:51 +0200 Subject: [PATCH] d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetVertexDeclaration(). --- dlls/d3d9/device.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c index c5dc834cc05..d4f1eeaa49a 100644 --- a/dlls/d3d9/device.c +++ b/dlls/d3d9/device.c @@ -2129,6 +2129,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetVertexDeclaration(IDirect3DDevice9 { IDirect3DDevice9Impl *This = impl_from_IDirect3DDevice9Ex(iface); struct wined3d_vertex_declaration *wined3d_declaration = NULL; + IDirect3DVertexDeclaration9Impl *declaration_impl; HRESULT hr; TRACE("iface %p, declaration %p.\n", iface, declaration); @@ -2139,7 +2140,8 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetVertexDeclaration(IDirect3DDevice9 hr = wined3d_device_get_vertex_declaration(This->wined3d_device, &wined3d_declaration); if (SUCCEEDED(hr) && wined3d_declaration) { - *declaration = wined3d_vertex_declaration_get_parent(wined3d_declaration); + declaration_impl = wined3d_vertex_declaration_get_parent(wined3d_declaration); + *declaration = &declaration_impl->IDirect3DVertexDeclaration9_iface; IDirect3DVertexDeclaration9_AddRef(*declaration); wined3d_vertex_declaration_decref(wined3d_declaration); }