Alexandre Julliard : user32: Don' t call GetModuleFileNameW under the user lock.

Alexandre Julliard julliard at winehq.org
Tue Dec 14 10:55:42 CST 2010


Module: wine
Branch: master
Commit: 2c63cf58eaeec9495c8aa174d62fe1c31aad3e74
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2c63cf58eaeec9495c8aa174d62fe1c31aad3e74

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Dec 14 13:49:14 2010 +0100

user32: Don't call GetModuleFileNameW under the user lock.

---

 dlls/user32/cursoricon.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/dlls/user32/cursoricon.c b/dlls/user32/cursoricon.c
index eeaae7a..356dbd8 100644
--- a/dlls/user32/cursoricon.c
+++ b/dlls/user32/cursoricon.c
@@ -1682,6 +1682,7 @@ BOOL WINAPI GetIconInfoExA( HICON icon, ICONINFOEXA *info )
 BOOL WINAPI GetIconInfoExW( HICON icon, ICONINFOEXW *info )
 {
     struct cursoricon_object *ptr;
+    HMODULE module;
     BOOL ret = TRUE;
 
     if (info->cbSize != sizeof(*info))
@@ -1707,7 +1708,6 @@ BOOL WINAPI GetIconInfoExW( HICON icon, ICONINFOEXW *info )
     info->szResName[0] = 0;
     if (ptr->module)
     {
-        GetModuleFileNameW( ptr->module, info->szModName, MAX_PATH );
         if (IS_INTRESOURCE( ptr->resname )) info->wResID = LOWORD( ptr->resname );
         else lstrcpynW( info->szResName, ptr->resname, MAX_PATH );
     }
@@ -1717,7 +1717,9 @@ BOOL WINAPI GetIconInfoExW( HICON icon, ICONINFOEXW *info )
         DeleteObject( info->hbmColor );
         ret = FALSE;
     }
+    module = ptr->module;
     release_icon_ptr( icon, ptr );
+    if (ret && module) GetModuleFileNameW( module, info->szModName, MAX_PATH );
     return ret;
 }
 




More information about the wine-cvs mailing list