Henri Verbeet : d3d9: Add some missing locking to IDirect3DDevice9Impl_EndStateBlock().

Alexandre Julliard julliard at winehq.org
Thu Nov 4 12:52:51 CDT 2010


Module: wine
Branch: master
Commit: 41a76b958df09aa3c1662d9c2d3888292ec0af5c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=41a76b958df09aa3c1662d9c2d3888292ec0af5c

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Thu Nov  4 10:37:32 2010 +0100

d3d9: Add some missing locking to IDirect3DDevice9Impl_EndStateBlock().

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;
     }




More information about the wine-cvs mailing list