Author: akhaldi Date: Fri Oct 14 18:03:07 2011 New Revision: 54138
URL: http://svn.reactos.org/svn/reactos?rev=54138&view=rev Log: [WIN32K] * Fix a copy-paste error in EngBitBlt() and improve DIB_32BPP_ColorFill() behaviour in case when input rectangle is invalid (RECTL structure fields are signed, so "jle" instruction should be used instead of "jbe"). * Patch by Igor Sudarikov <4seev3 at gmail [dot] com> See issue #4423 for more details.
Modified: trunk/reactos/subsystems/win32/win32k/dib/i386/dib32bpp_colorfill.s trunk/reactos/subsystems/win32/win32k/eng/bitblt.c
Modified: trunk/reactos/subsystems/win32/win32k/dib/i386/dib32bpp_colorfill.s URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/dib... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/dib/i386/dib32bpp_colorfill.s [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/dib/i386/dib32bpp_colorfill.s [iso-8859-1] Fri Oct 14 18:03:07 2011 @@ -39,11 +39,11 @@
mov ebx, [edx+8] /* ebx = prcl->right; */ sub ebx, [edx] /* ebx = prcl->right - prcl->left; */ - jbe .end /* if (ebx <= 0) goto end; */ + jle .end /* if (ebx <= 0) goto end; */
mov edx, [edx+12] /* edx = prcl->bottom; */ sub edx, edi /* edx -= prcl->top; */ - jbe .end /* if (eax <= 0) goto end; */ + jle .end /* if (eax <= 0) goto end; */
mov eax, [ebp+16] /* eax = iColor; */ cld
Modified: trunk/reactos/subsystems/win32/win32k/eng/bitblt.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/eng... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/eng/bitblt.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/eng/bitblt.c [iso-8859-1] Fri Oct 14 18:03:07 2011 @@ -349,16 +349,7 @@ //DPRINT1("Rop4 : 0x%08x\n", Rop4);
OutputRect = *DestRect; - if (OutputRect.right < OutputRect.left) - { - OutputRect.left = DestRect->right; - OutputRect.right = DestRect->left; - } - if (OutputRect.bottom < OutputRect.top) - { - OutputRect.left = DestRect->right; - OutputRect.right = DestRect->left; - } + RECTL_vMakeWellOrdered(&OutputRect);
if (UsesSource) {