Alexandre Julliard : winex11: Add window data structure locking to the window region functions.

Alexandre Julliard julliard at winehq.org
Fri Sep 21 14:22:39 CDT 2012


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Sep 21 15:53:48 2012 +0200

winex11: Add window data structure locking to the window region functions.

---

 dlls/winex11.drv/window.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index abbdb98..5eab698 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -2269,9 +2269,10 @@ int CDECL X11DRV_SetWindowRgn( HWND hwnd, HRGN hrgn, BOOL redraw )
 {
     struct x11drv_win_data *data;
 
-    if ((data = X11DRV_get_win_data( hwnd )))
+    if ((data = get_win_data( hwnd )))
     {
         sync_window_region( thread_display(), data, hrgn );
+        release_win_data( data );
     }
     else if (X11DRV_get_whole_window( hwnd ))
     {
@@ -2324,7 +2325,11 @@ LRESULT CDECL X11DRV_WindowMessage( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
     case WM_X11DRV_SET_WIN_FORMAT:
         return set_win_format( hwnd, (XID)wp );
     case WM_X11DRV_SET_WIN_REGION:
-        if ((data = X11DRV_get_win_data( hwnd ))) sync_window_region( thread_display(), data, (HRGN)1 );
+        if ((data = get_win_data( hwnd )))
+        {
+            sync_window_region( thread_display(), data, (HRGN)1 );
+            release_win_data( data );
+        }
         return 0;
     case WM_X11DRV_RESIZE_DESKTOP:
         X11DRV_resize_desktop( LOWORD(lp), HIWORD(lp) );




More information about the wine-cvs mailing list