d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetIndices().

This commit is contained in:
Henri Verbeet 2012-04-29 20:52:02 +02:00 committed by Alexandre Julliard
parent e0212511fc
commit c208d973f6
1 changed files with 3 additions and 1 deletions

View File

@ -2575,6 +2575,7 @@ static HRESULT WINAPI IDirect3DDevice9Impl_GetIndices(IDirect3DDevice9Ex *iface,
{ {
IDirect3DDevice9Impl *This = impl_from_IDirect3DDevice9Ex(iface); IDirect3DDevice9Impl *This = impl_from_IDirect3DDevice9Ex(iface);
struct wined3d_buffer *retIndexData = NULL; struct wined3d_buffer *retIndexData = NULL;
IDirect3DIndexBuffer9Impl *buffer_impl;
HRESULT hr; HRESULT hr;
TRACE("iface %p, buffer %p.\n", iface, ppIndexData); 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); hr = wined3d_device_get_index_buffer(This->wined3d_device, &retIndexData);
if (SUCCEEDED(hr) && 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); IDirect3DIndexBuffer9_AddRef(*ppIndexData);
wined3d_buffer_decref(retIndexData); wined3d_buffer_decref(retIndexData);
} }