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