Jacek Caban : ole32: Don' t try to unregister window class if it was never registered.
Alexandre Julliard
julliard at winehq.org
Mon Jun 4 16:26:23 CDT 2018
Module: wine
Branch: master
Commit: fd67e394e69ec59a23ca89ce729d1d72a61954ce
URL: https://source.winehq.org/git/wine.git/?a=commit;h=fd67e394e69ec59a23ca89ce729d1d72a61954ce
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Jun 1 20:51:24 2018 +0200
ole32: Don't try to unregister window class if it was never registered.
UnregisterClass may load display driver, which is may be problematic
inside DLL_PROCESS_DETACH (esp. in Android drivers, which imports ole32
itself).
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ole32/compobj.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/ole32/compobj.c b/dlls/ole32/compobj.c
index a9e94c5..fb69a66 100644
--- a/dlls/ole32/compobj.c
+++ b/dlls/ole32/compobj.c
@@ -479,6 +479,8 @@ struct apartment_loaded_dll
static const WCHAR wszAptWinClass[] = {'O','l','e','M','a','i','n','T','h','r','e','a','d','W','n','d','C','l','a','s','s',0};
+static ATOM apt_win_class;
+
/*****************************************************************************
* This section contains OpenDllList implementation
*/
@@ -1695,7 +1697,7 @@ static BOOL WINAPI register_class( INIT_ONCE *once, void *param, void **context
wclass.lpfnWndProc = apartment_wndproc;
wclass.hInstance = hProxyDll;
wclass.lpszClassName = wszAptWinClass;
- RegisterClassW(&wclass);
+ apt_win_class = RegisterClassW(&wclass);
return TRUE;
}
@@ -5270,7 +5272,8 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID reserved)
case DLL_PROCESS_DETACH:
if (reserved) break;
release_std_git();
- UnregisterClassW( wszAptWinClass, hProxyDll );
+ if(apt_win_class)
+ UnregisterClassW( (const WCHAR*)MAKEINTATOM(apt_win_class), hProxyDll );
RPC_UnregisterAllChannelHooks();
COMPOBJ_DllList_Free();
DeleteCriticalSection(&csRegisteredClassList);
More information about the wine-cvs
mailing list