Module: wine Branch: master Commit: 134137cdb4ee210209da8a8ad38deef62e0bb70e URL: http://source.winehq.org/git/wine.git/?a=commit;h=134137cdb4ee210209da8a8ad3...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu Jan 6 09:39:00 2011 +0100
wined3d: Pass an IWineD3DResourceImpl pointer to resource_cleanup().
---
dlls/wined3d/basetexture.c | 4 ++-- dlls/wined3d/buffer.c | 6 +++--- dlls/wined3d/resource.c | 31 ++++++++++++++++--------------- dlls/wined3d/surface.c | 2 +- dlls/wined3d/surface_gdi.c | 2 +- dlls/wined3d/volume.c | 2 +- dlls/wined3d/wined3d_private.h | 2 +- 7 files changed, 25 insertions(+), 24 deletions(-)
diff --git a/dlls/wined3d/basetexture.c b/dlls/wined3d/basetexture.c index d6678b7..6d0f951 100644 --- a/dlls/wined3d/basetexture.c +++ b/dlls/wined3d/basetexture.c @@ -48,7 +48,7 @@ HRESULT basetexture_init(IWineD3DBaseTextureImpl *texture, const struct wined3d_ if (!texture->baseTexture.sub_resources) { ERR("Failed to allocate sub-resource array.\n"); - resource_cleanup((IWineD3DResource *)texture); + resource_cleanup((IWineD3DResourceImpl *)texture); return E_OUTOFMEMORY; }
@@ -79,7 +79,7 @@ void basetexture_cleanup(IWineD3DBaseTextureImpl *texture) { basetexture_unload(texture); HeapFree(GetProcessHeap(), 0, texture->baseTexture.sub_resources); - resource_cleanup((IWineD3DResource *)texture); + resource_cleanup((IWineD3DResourceImpl *)texture); }
IWineD3DResourceImpl *basetexture_get_sub_resource(IWineD3DBaseTextureImpl *texture, UINT sub_resource_idx) diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c index bfed37c..b5aeee4 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -742,7 +742,7 @@ static ULONG STDMETHODCALLTYPE buffer_Release(IWineD3DBuffer *iface) if (!refcount) { buffer_UnLoad(iface); - resource_cleanup((IWineD3DResource *)iface); + resource_cleanup((IWineD3DResourceImpl *)iface); This->resource.parent_ops->wined3d_object_destroyed(This->resource.parent); HeapFree(GetProcessHeap(), 0, This->maps); HeapFree(GetProcessHeap(), 0, This); @@ -1521,7 +1521,7 @@ HRESULT buffer_init(struct wined3d_buffer *buffer, IWineD3DDeviceImpl *device, { ERR("Failed to map buffer, hr %#x\n", hr); buffer_UnLoad((IWineD3DBuffer *)buffer); - resource_cleanup((IWineD3DResource *)buffer); + resource_cleanup((IWineD3DResourceImpl *)buffer); return hr; }
@@ -1535,7 +1535,7 @@ HRESULT buffer_init(struct wined3d_buffer *buffer, IWineD3DDeviceImpl *device, { ERR("Out of memory\n"); buffer_UnLoad((IWineD3DBuffer *)buffer); - resource_cleanup((IWineD3DResource *)buffer); + resource_cleanup((IWineD3DResourceImpl *)buffer); return E_OUTOFMEMORY; } buffer->maps_size = 1; diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c index 0c8aa98..7b8066e 100644 --- a/dlls/wined3d/resource.c +++ b/dlls/wined3d/resource.c @@ -93,33 +93,34 @@ HRESULT resource_init(struct IWineD3DResourceImpl *resource, WINED3DRESOURCETYPE return WINED3D_OK; }
-void resource_cleanup(IWineD3DResource *iface) +void resource_cleanup(struct IWineD3DResourceImpl *resource) { - IWineD3DResourceImpl *This = (IWineD3DResourceImpl *)iface; struct private_data *data; struct list *e1, *e2; HRESULT hr;
- TRACE("(%p) Cleaning up resource\n", This); - if (This->resource.pool == WINED3DPOOL_DEFAULT) { - TRACE("Decrementing device memory pool by %u\n", This->resource.size); - WineD3DAdapterChangeGLRam(This->resource.device, -This->resource.size); + TRACE("Cleaning up resource %p.\n", resource); + + if (resource->resource.pool == WINED3DPOOL_DEFAULT) + { + TRACE("Decrementing device memory pool by %u.\n", resource->resource.size); + WineD3DAdapterChangeGLRam(resource->resource.device, -resource->resource.size); }
- LIST_FOR_EACH_SAFE(e1, e2, &This->resource.privateData) + LIST_FOR_EACH_SAFE(e1, e2, &resource->resource.privateData) { data = LIST_ENTRY(e1, struct private_data, entry); - hr = resource_free_private_data(iface, &data->tag); - if(hr != WINED3D_OK) { - ERR("Failed to free private data when destroying resource %p, hr = %08x\n", This, hr); - } + hr = resource_free_private_data((IWineD3DResource *)resource, &data->tag); + if (FAILED(hr)) + ERR("Failed to free private data when destroying resource %p, hr = %#x.\n", resource, hr); }
- HeapFree(GetProcessHeap(), 0, This->resource.heapMemory); - This->resource.allocatedMemory = 0; - This->resource.heapMemory = 0; + HeapFree(GetProcessHeap(), 0, resource->resource.heapMemory); + resource->resource.allocatedMemory = 0; + resource->resource.heapMemory = 0;
- if (This->resource.device) device_resource_released(This->resource.device, iface); + if (resource->resource.device) + device_resource_released(resource->resource.device, (IWineD3DResource *)resource); }
void resource_unload(IWineD3DResourceImpl *resource) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index a4f37cc..8eedb90 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -89,7 +89,7 @@ static void surface_cleanup(IWineD3DSurfaceImpl *This)
HeapFree(GetProcessHeap(), 0, This->palette9);
- resource_cleanup((IWineD3DResource *)This); + resource_cleanup((IWineD3DResourceImpl *)This); }
void surface_set_container(IWineD3DSurfaceImpl *surface, enum wined3d_container_type type, IWineD3DBase *container) diff --git a/dlls/wined3d/surface_gdi.c b/dlls/wined3d/surface_gdi.c index b1c0b32..013ff2c 100644 --- a/dlls/wined3d/surface_gdi.c +++ b/dlls/wined3d/surface_gdi.c @@ -54,7 +54,7 @@ void surface_gdi_cleanup(IWineD3DSurfaceImpl *This)
HeapFree(GetProcessHeap(), 0, This->palette9);
- resource_cleanup((IWineD3DResource *)This); + resource_cleanup((IWineD3DResourceImpl *)This); }
/***************************************************************************** diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c index 8ccc482..dbc2116 100644 --- a/dlls/wined3d/volume.c +++ b/dlls/wined3d/volume.c @@ -133,7 +133,7 @@ static ULONG WINAPI IWineD3DVolumeImpl_Release(IWineD3DVolume *iface) {
if (!ref) { - resource_cleanup((IWineD3DResource *)iface); + resource_cleanup((IWineD3DResourceImpl *)iface); This->resource.parent_ops->wined3d_object_destroyed(This->resource.parent); HeapFree(GetProcessHeap(), 0, This); } diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 9d4009c..41456f9 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1828,7 +1828,7 @@ typedef struct IWineD3DResourceImpl IWineD3DResourceClass resource; } IWineD3DResourceImpl;
-void resource_cleanup(IWineD3DResource *iface) DECLSPEC_HIDDEN; +void resource_cleanup(struct IWineD3DResourceImpl *resource) DECLSPEC_HIDDEN; HRESULT resource_free_private_data(IWineD3DResource *iface, REFGUID guid) DECLSPEC_HIDDEN; DWORD resource_get_priority(IWineD3DResource *iface) DECLSPEC_HIDDEN; HRESULT resource_get_private_data(IWineD3DResource *iface, REFGUID guid,