From e337dfa99df8edd5ffd6850764833069f0246049 Mon Sep 17 00:00:00 2001 From: Gregor Schneider Date: Mon, 9 Feb 2009 13:10:39 +0000 Subject: [PATCH] - Remove coordinate checks from NtGdiStretchBlt, since they're done at a later stage differently now - Fixes a div/0 crash that happened in XnView and Acrobat Reader 9 Setup svn path=/trunk/; revision=39510 --- .../subsystems/win32/win32k/objects/bitblt.c | 50 ------------------- 1 file changed, 50 deletions(-) diff --git a/reactos/subsystems/win32/win32k/objects/bitblt.c b/reactos/subsystems/win32/win32k/objects/bitblt.c index 4e9809df1bc..88feb52b7ee 100644 --- a/reactos/subsystems/win32/win32k/objects/bitblt.c +++ b/reactos/subsystems/win32/win32k/objects/bitblt.c @@ -857,56 +857,6 @@ NtGdiStretchBlt( goto failed; } - int sw = BitmapSrc->SurfObj.sizlBitmap.cx; - int sh = BitmapSrc->SurfObj.sizlBitmap.cy; - if ( SourceRect.left < 0 ) - { - DestRect.left = DestRect.right - (DestRect.right-DestRect.left) * (SourceRect.right)/abs(SourceRect.right-SourceRect.left); - SourceRect.left = 0; - } - if ( SourceRect.top < 0 ) - { - DestRect.top = DestRect.bottom - (DestRect.bottom-DestRect.top) * (SourceRect.bottom)/abs(SourceRect.bottom-SourceRect.top); - SourceRect.top = 0; - } - if ( SourceRect.right < -1 ) - { - DestRect.right = DestRect.left + (DestRect.right-DestRect.left) * (-1-SourceRect.left)/abs(SourceRect.right-SourceRect.left); - SourceRect.right = -1; - } - if ( SourceRect.bottom < -1 ) - { - DestRect.bottom = DestRect.top + (DestRect.bottom-DestRect.top) * (-1-SourceRect.top)/abs(SourceRect.bottom-SourceRect.top); - SourceRect.bottom = -1; - } - if ( SourceRect.right > sw ) - { - DestRect.right = DestRect.left + (DestRect.right-DestRect.left) * abs(sw-SourceRect.left) / abs(SourceRect.right-SourceRect.left); - SourceRect.right = sw; - } - if ( SourceRect.bottom > sh ) - { - DestRect.bottom = DestRect.top + (DestRect.bottom-DestRect.top) * abs(sh-SourceRect.top) / abs(SourceRect.bottom-SourceRect.top); - SourceRect.bottom = sh; - } - sw--; - sh--; - if ( SourceRect.left > sw ) - { - DestRect.left = DestRect.right - (DestRect.right-DestRect.left) * (SourceRect.right-sw) / abs(SourceRect.right-SourceRect.left); - SourceRect.left = 0; - } - if ( SourceRect.top > sh ) - { - DestRect.top = DestRect.bottom - (DestRect.bottom-DestRect.top) * (SourceRect.bottom-sh) / abs(SourceRect.bottom-SourceRect.top); - SourceRect.top = 0; - } - if (0 == (DestRect.right-DestRect.left) || 0 == (DestRect.bottom-DestRect.top) || 0 == (SourceRect.right-SourceRect.left) || 0 == (SourceRect.bottom-SourceRect.top)) - { - SetLastWin32Error(ERROR_INVALID_PARAMETER); - goto failed; - } - /* Create the XLATEOBJ. */ XlateObj = IntCreateXlateForBlt(DCDest, DCSrc, BitmapDest, BitmapSrc); if (XlateObj == (XLATEOBJ*)-1)