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/di…
==============================================================================
--- 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/en…
==============================================================================
--- 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)
{