Jacek Caban : user32: Don't load cursor inside user lock in register_builtin.
Alexandre Julliard
julliard at winehq.org
Fri Nov 19 15:45:33 CST 2021
Module: wine
Branch: master
Commit: 898ce074066ea29dc8eedd37070161ede912dc25
URL: https://source.winehq.org/git/wine.git/?a=commit;h=898ce074066ea29dc8eedd37070161ede912dc25
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Nov 19 13:45:10 2021 +0100
user32: Don't load cursor inside user lock in register_builtin.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/user32/class.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/dlls/user32/class.c b/dlls/user32/class.c
index 622226f9e15..b37db675400 100644
--- a/dlls/user32/class.c
+++ b/dlls/user32/class.c
@@ -529,11 +529,18 @@ static CLASS *CLASS_RegisterClass( LPCWSTR name, UINT basename_offset, HINSTANCE
static void register_builtin( const struct builtin_class_descr *descr )
{
CLASS *classPtr;
+ HCURSOR cursor = 0;
+
+ if (descr->cursor) cursor = LoadCursorA( 0, (LPSTR)descr->cursor );
if (!(classPtr = CLASS_RegisterClass( descr->name, 0, user32_module, FALSE,
- descr->style, 0, descr->extra ))) return;
+ descr->style, 0, descr->extra )))
+ {
+ if (cursor) DestroyCursor( cursor );
+ return;
+ }
- if (descr->cursor) classPtr->hCursor = LoadCursorA( 0, (LPSTR)descr->cursor );
+ classPtr->hCursor = cursor;
classPtr->hbrBackground = descr->brush;
classPtr->winproc = BUILTIN_WINPROC( descr->proc );
release_class_ptr( classPtr );
More information about the wine-cvs
mailing list