Stefan Dösinger : ddraw: Hold the lock in IDirect3DLight methods.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Jun 5 05:48:30 CDT 2007


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

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Wed May 30 16:16:04 2007 +0200

ddraw: Hold the lock in IDirect3DLight methods.

---

 dlls/ddraw/light.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/dlls/ddraw/light.c b/dlls/ddraw/light.c
index 93144d3..aeb8390 100644
--- a/dlls/ddraw/light.c
+++ b/dlls/ddraw/light.c
@@ -201,10 +201,12 @@ IDirect3DLightImpl_SetLight(IDirect3DLight *iface,
     light7->dvTheta        = lpLight->dvTheta;
     light7->dvPhi          = lpLight->dvPhi;
 
+    EnterCriticalSection(&ddraw_cs);
     memcpy(&This->light, lpLight, lpLight->dwSize);
     if ((This->light.dwFlags & D3DLIGHT_ACTIVE) != 0) {
         This->update(This);        
     }
+    LeaveCriticalSection(&ddraw_cs);
     return D3D_OK;
 }
 
@@ -230,7 +232,11 @@ IDirect3DLightImpl_GetLight(IDirect3DLight *iface,
         TRACE("  Returning light definition :\n");
 	dump_light(&This->light);
     }
+
+    EnterCriticalSection(&ddraw_cs);
     memcpy(lpLight, &This->light, lpLight->dwSize);
+    LeaveCriticalSection(&ddraw_cs);
+
     return DD_OK;
 }
 




More information about the wine-cvs mailing list