Patch by Jeffrey Morlan <mrnobo1024 at yahoo.com>: Rearrange code in NtGdiSelectBitmap to prevent deadlock. See bug 3333.

svn path=/trunk/; revision=34097
This commit is contained in:
James Tabor 2008-06-26 12:05:38 +00:00
parent 968033dd41
commit eec2739a8b

View file

@ -1955,6 +1955,9 @@ NtGdiSelectBitmap(
pDC->w.bitsPerPixel = BitsPerFormat(pBmp->SurfObj.iBitmapFormat);
}
hVisRgn = NtGdiCreateRectRgn(0, 0, pBmp->SurfObj.sizlBitmap.cx, pBmp->SurfObj.sizlBitmap.cy);
BITMAPOBJ_UnlockBitmap(pBmp);
/* Regenerate the XLATEOBJs. */
pBrush = BRUSHOBJ_LockBrush(pDc_Attr->hbrush);
if (pBrush)
@ -1980,9 +1983,6 @@ NtGdiSelectBitmap(
DC_UnlockDc(pDC);
hVisRgn = NtGdiCreateRectRgn(0, 0, pBmp->SurfObj.sizlBitmap.cx, pBmp->SurfObj.sizlBitmap.cy);
BITMAPOBJ_UnlockBitmap(pBmp);
if (hVisRgn)
{
GdiSelectVisRgn(hDC, hVisRgn);