[PATCH 4/5] d3d9: Add some missing locking to IDirect3DDevice9Impl_EndStateBlock().
Henri Verbeet
hverbeet at codeweavers.com
Thu Nov 4 04:37:32 CDT 2010
Found by Michael Stefaniuc & Coccinelle.
---
dlls/d3d9/device.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c
index 349bde4..c0b8b74 100644
--- a/dlls/d3d9/device.c
+++ b/dlls/d3d9/device.c
@@ -1551,7 +1551,9 @@ static HRESULT WINAPI IDirect3DDevice9Impl_EndStateBlock(IDirect3DDevice9Ex *ifa
if (!object)
{
ERR("Failed to allocate stateblock memory.\n");
+ wined3d_mutex_lock();
IWineD3DStateBlock_Release(wined3d_stateblock);
+ wined3d_mutex_unlock();
return E_OUTOFMEMORY;
}
@@ -1559,7 +1561,9 @@ static HRESULT WINAPI IDirect3DDevice9Impl_EndStateBlock(IDirect3DDevice9Ex *ifa
if (FAILED(hr))
{
WARN("Failed to initialize stateblock, hr %#x.\n", hr);
+ wined3d_mutex_lock();
IWineD3DStateBlock_Release(wined3d_stateblock);
+ wined3d_mutex_unlock();
HeapFree(GetProcessHeap(), 0, object);
return hr;
}
--
1.7.2.2
More information about the wine-patches
mailing list