[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[pkg-wine-party] [SCM] Debian Wine packaging branch, wheezy, updated. wine-1.4-7-302-gb61b690



The following commit has been merged in the wheezy branch:
commit de015159858f20a0f7803e63a953f7027fb005f3
Author: Alexandre Julliard <julliard@winehq.org>
Date:   Mon Apr 2 22:21:22 2012 +0200

    winex11: Fix a potential deadlock in the GradientFill non-XRender fallback.
    (cherry picked from commit 46390b09d5dccce6704208ea62cbf53e29e0ce90)

diff --git a/dlls/winex11.drv/graphics.c b/dlls/winex11.drv/graphics.c
index afe2ff1..e78cd74 100644
--- a/dlls/winex11.drv/graphics.c
+++ b/dlls/winex11.drv/graphics.c
@@ -1446,11 +1446,13 @@ BOOL X11DRV_GradientFill( PHYSDEV dev, TRIVERTEX *vert_array, ULONG nvert,
             }
             for (x = 0, pos = min( pt[0].x, pt[1].x ); x < dx; x++, pos++)
             {
-                COLORREF color = RGB( (v[0].Red   * (dx - x) + v[1].Red   * x) / dx / 256,
+                int color = X11DRV_PALETTE_ToPhysical( physdev,
+                                 RGB( (v[0].Red   * (dx - x) + v[1].Red   * x) / dx / 256,
                                       (v[0].Green * (dx - x) + v[1].Green * x) / dx / 256,
-                                      (v[0].Blue  * (dx - x) + v[1].Blue  * x) / dx / 256);
+                                      (v[0].Blue  * (dx - x) + v[1].Blue  * x) / dx / 256) );
+
                 wine_tsx11_lock();
-                XSetForeground( gdi_display, physdev->gc, X11DRV_PALETTE_ToPhysical( physdev, color ));
+                XSetForeground( gdi_display, physdev->gc, color );
                 XDrawLine( gdi_display, physdev->drawable, physdev->gc,
                            physdev->dc_rect.left + pos, physdev->dc_rect.top + pt[0].y,
                            physdev->dc_rect.left + pos, physdev->dc_rect.top + pt[1].y );
@@ -1491,11 +1493,13 @@ BOOL X11DRV_GradientFill( PHYSDEV dev, TRIVERTEX *vert_array, ULONG nvert,
             }
             for (y = 0, pos = min( pt[0].y, pt[1].y ); y < dy; y++, pos++)
             {
-                COLORREF color = RGB( (v[0].Red   * (dy - y) + v[1].Red   * y) / dy / 256,
+                int color = X11DRV_PALETTE_ToPhysical( physdev,
+                                 RGB( (v[0].Red   * (dy - y) + v[1].Red   * y) / dy / 256,
                                       (v[0].Green * (dy - y) + v[1].Green * y) / dy / 256,
-                                      (v[0].Blue  * (dy - y) + v[1].Blue  * y) / dy / 256);
+                                      (v[0].Blue  * (dy - y) + v[1].Blue  * y) / dy / 256) );
+
                 wine_tsx11_lock();
-                XSetForeground( gdi_display, physdev->gc, X11DRV_PALETTE_ToPhysical( physdev, color ));
+                XSetForeground( gdi_display, physdev->gc, color );
                 XDrawLine( gdi_display, physdev->drawable, physdev->gc,
                            physdev->dc_rect.left + pt[0].x, physdev->dc_rect.top + pos,
                            physdev->dc_rect.left + pt[1].x, physdev->dc_rect.top + pos );

-- 
Debian Wine packaging



Reply to: