Module: wine Branch: master Commit: a3e2c68f986308997e764f0c383441531c61949a URL: http://source.winehq.org/git/wine.git/?a=commit;h=a3e2c68f986308997e764f0c38...
Author: Francois Gouget fgouget@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)