Stefan Dösinger : ddraw: Make the ddraw list lock a global dll lock.

Alexandre Julliard julliard at wine.codeweavers.com
Tue May 22 06:59:52 CDT 2007


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

Author: Stefan Dösinger <stefandoesinger at gmx.at>
Date:   Fri May 18 15:31:47 2007 +0200

ddraw: Make the ddraw list lock a global dll lock.

---

 dlls/ddraw/ddraw_private.h |    3 +++
 dlls/ddraw/main.c          |   21 ++++++++++-----------
 2 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h
index 9845102..5bd1164 100644
--- a/dlls/ddraw/ddraw_private.h
+++ b/dlls/ddraw/ddraw_private.h
@@ -80,6 +80,9 @@ extern ULONG WINAPI D3D7CB_DestroySwapChain(IWineD3DSwapChain *pSwapChain);
 
 extern ULONG WINAPI D3D7CB_DestroyDepthStencilSurface(IWineD3DSurface *pSurface);
 
+/* Global critical section */
+extern CRITICAL_SECTION ddraw_cs;
+
 /*****************************************************************************
  * IDirectDraw implementation structure
  *****************************************************************************/
diff --git a/dlls/ddraw/main.c b/dlls/ddraw/main.c
index 46c383a..963661b 100644
--- a/dlls/ddraw/main.c
+++ b/dlls/ddraw/main.c
@@ -59,15 +59,14 @@ WINED3DSURFTYPE DefaultSurfaceType = SURFACE_UNKNOWN;
 /* DDraw list and critical section */
 static struct list global_ddraw_list = LIST_INIT(global_ddraw_list);
 
-static CRITICAL_SECTION ddraw_list_cs;
-static CRITICAL_SECTION_DEBUG ddraw_list_cs_debug =
+static CRITICAL_SECTION_DEBUG ddraw_cs_debug =
 {
-    0, 0, &ddraw_list_cs,
-    { &ddraw_list_cs_debug.ProcessLocksList, 
-    &ddraw_list_cs_debug.ProcessLocksList },
-    0, 0, { (DWORD_PTR)(__FILE__ ": ddraw_list_cs") }
+    0, 0, &ddraw_cs,
+    { &ddraw_cs_debug.ProcessLocksList,
+    &ddraw_cs_debug.ProcessLocksList },
+    0, 0, { (DWORD_PTR)(__FILE__ ": ddraw_cs") }
 };
-static CRITICAL_SECTION ddraw_list_cs = { &ddraw_list_cs_debug, -1, 0, 0, 0, 0 };
+CRITICAL_SECTION ddraw_cs = { &ddraw_cs_debug, -1, 0, 0, 0, 0 };
 
 /***********************************************************************
  *
@@ -319,9 +318,9 @@ DDRAW_Create(const GUID *guid,
 
     list_init(&This->surface_list);
 
-    EnterCriticalSection(&ddraw_list_cs);
+    EnterCriticalSection(&ddraw_cs);
     list_add_head(&global_ddraw_list, &This->ddraw_list_entry);
-    LeaveCriticalSection(&ddraw_list_cs);
+    LeaveCriticalSection(&ddraw_cs);
 
     This->decls = HeapAlloc(GetProcessHeap(), 0, 0);
     if(!This->decls)
@@ -948,7 +947,7 @@ DllMain(HINSTANCE hInstDLL,
 void
 remove_ddraw_object(IDirectDrawImpl *ddraw)
 {
-    EnterCriticalSection(&ddraw_list_cs);
+    EnterCriticalSection(&ddraw_cs);
     list_remove(&ddraw->ddraw_list_entry);
-    LeaveCriticalSection(&ddraw_list_cs);
+    LeaveCriticalSection(&ddraw_cs);
 }




More information about the wine-cvs mailing list