[ros-diffs] [akhaldi] 54138: [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" in...

akhaldi at svn.reactos.org akhaldi at svn.reactos.org
Fri Oct 14 18:03:07 UTC 2011


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/i386/dib32bpp_colorfill.s?rev=54138&r1=54137&r2=54138&view=diff
==============================================================================
--- 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/bitblt.c?rev=54138&r1=54137&r2=54138&view=diff
==============================================================================
--- 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)
     {




More information about the Ros-diffs mailing list