https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5418f394ab22b376f29a03f3c82924ff28055f5d

commit 5418f394ab22b376f29a03f3c82924ff28055f5d
Author:     jimtabor <[email protected]>
AuthorDate: Sat May 11 11:22:06 2019 -0500
Commit:     jimtabor <[email protected]>
CommitDate: Sat May 11 11:22:06 2019 -0500

    [Gdi32] Batch Type Select Mode for Testing
    
    Do not allow setting hdc if no batch type is found.
    See CORE-15988.
---
 win32ss/gdi/gdi32/include/gdi32p.h | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/win32ss/gdi/gdi32/include/gdi32p.h 
b/win32ss/gdi/gdi32/include/gdi32p.h
index c054bf1fcc..c979ee9eee 100644
--- a/win32ss/gdi/gdi32/include/gdi32p.h
+++ b/win32ss/gdi/gdi32/include/gdi32p.h
@@ -392,16 +392,6 @@ GdiAllocBatchCommand(
     /* Check if we have a valid environment */
     if (!pTeb || !pTeb->Win32ThreadInfo) return NULL;
 
-    /* Do we use a DC? */
-    if (hdc)
-    {
-        /* If the batch DC is NULL, we set this one as the new one */
-        if (!pTeb->GdiTebBatch.HDC) pTeb->GdiTebBatch.HDC = hdc;
-
-        /* If not, check if the batch DC equal to our DC */
-        else if (pTeb->GdiTebBatch.HDC != hdc) return NULL;
-    }
-
     /* Get the size of the entry */
     if      (Cmd == GdiBCPatBlt) cjSize = sizeof(GDIBSPATBLT);
     else if (Cmd == GdiBCPolyPatBlt) cjSize = sizeof(GDIBSPPATBLT);
@@ -417,6 +407,16 @@ GdiAllocBatchCommand(
     /* Unsupported operation */
     if (cjSize == 0) return NULL;
 
+    /* Do we use a DC? */
+    if (hdc)
+    {
+        /* If the batch DC is NULL, we set this one as the new one */
+        if (!pTeb->GdiTebBatch.HDC) pTeb->GdiTebBatch.HDC = hdc;
+
+        /* If not, check if the batch DC equal to our DC */
+        else if (pTeb->GdiTebBatch.HDC != hdc) return NULL;
+    }
+
     /* Check if the buffer is full */
     if ((pTeb->GdiBatchCount >= GDI_BatchLimit) ||
         ((pTeb->GdiTebBatch.Offset + cjSize) > GDIBATCHBUFSIZE))

Reply via email to