Francois Gouget : msxml3: Delete the dispex static critical section when unloading the dll.

Alexandre Julliard julliard at winehq.org
Thu Nov 17 12:52:34 CST 2011


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

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Thu Nov 17 09:53:01 2011 +0100

msxml3: Delete the dispex static critical section when unloading the dll.

---

 dlls/msxml3/dispex.c |   22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/dlls/msxml3/dispex.c b/dlls/msxml3/dispex.c
index 3789134..6c74173 100644
--- a/dlls/msxml3/dispex.c
+++ b/dlls/msxml3/dispex.c
@@ -45,6 +45,16 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(msxml);
 
+static CRITICAL_SECTION cs_dispex_static_data;
+static CRITICAL_SECTION_DEBUG cs_dispex_static_data_dbg =
+{
+    0, 0, &cs_dispex_static_data,
+    { &cs_dispex_static_data_dbg.ProcessLocksList, &cs_dispex_static_data_dbg.ProcessLocksList },
+      0, 0, { (DWORD_PTR)(__FILE__ ": dispex_static_data") }
+};
+static CRITICAL_SECTION cs_dispex_static_data = { &cs_dispex_static_data_dbg, -1, 0, 0, 0, 0 };
+
+
 enum lib_version_t
 {
     LibXml = 0,
@@ -206,6 +216,8 @@ void release_typelib(void)
     for(i=0; i < sizeof(typelib)/sizeof(*typelib); i++)
         if(typelib[i])
             ITypeLib_Release(typelib[i]);
+
+    DeleteCriticalSection(&cs_dispex_static_data);
 }
 
 static void add_func_info(dispex_data_t *data, DWORD *size, tid_t tid, DISPID id, ITypeInfo *dti)
@@ -301,16 +313,6 @@ static dispex_data_t *preprocess_dispex_data(DispatchEx *This)
     return data;
 }
 
-static CRITICAL_SECTION cs_dispex_static_data;
-static CRITICAL_SECTION_DEBUG cs_dispex_static_data_dbg =
-{
-    0, 0, &cs_dispex_static_data,
-    { &cs_dispex_static_data_dbg.ProcessLocksList, &cs_dispex_static_data_dbg.ProcessLocksList },
-      0, 0, { (DWORD_PTR)(__FILE__ ": dispex_static_data") }
-};
-static CRITICAL_SECTION cs_dispex_static_data = { &cs_dispex_static_data_dbg, -1, 0, 0, 0, 0 };
-
-
 static dispex_data_t *get_dispex_data(DispatchEx *This)
 {
     if(This->data->data)




More information about the wine-cvs mailing list