mshtml: Delete the dispex and gecko static critical sections when unloading the dll.

This commit is contained in:
Francois Gouget 2011-11-17 09:52:21 +01:00 committed by Alexandre Julliard
parent c9ae82da93
commit 113df19d6a
2 changed files with 13 additions and 10 deletions

View File

@ -31,6 +31,16 @@
WINE_DEFAULT_DEBUG_CHANNEL(mshtml); WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
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 const WCHAR objectW[] = {'[','o','b','j','e','c','t',']',0}; static const WCHAR objectW[] = {'[','o','b','j','e','c','t',']',0};
typedef struct { typedef struct {
@ -155,6 +165,7 @@ void release_typelib(void)
ITypeInfo_Release(typeinfos[i]); ITypeInfo_Release(typeinfos[i]);
ITypeLib_Release(typelib); ITypeLib_Release(typelib);
DeleteCriticalSection(&cs_dispex_static_data);
} }
HRESULT get_htmldoc_classinfo(ITypeInfo **typeinfo) HRESULT get_htmldoc_classinfo(ITypeInfo **typeinfo)
@ -320,16 +331,6 @@ HRESULT get_dispids(tid_t tid, DWORD *ret_size, DISPID **ret)
return S_OK; return S_OK;
} }
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) static dispex_data_t *get_dispex_data(DispatchEx *This)
{ {
if(This->data->data) if(This->data->data)

View File

@ -905,6 +905,8 @@ void close_gecko(void)
/* Gecko doesn't really support being unloaded */ /* Gecko doesn't really support being unloaded */
/* if (hXPCOM) FreeLibrary(hXPCOM); */ /* if (hXPCOM) FreeLibrary(hXPCOM); */
DeleteCriticalSection(&cs_load_gecko);
} }
BOOL is_gecko_path(const char *path) BOOL is_gecko_path(const char *path)