https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5418f394ab22b376f29a03...
commit 5418f394ab22b376f29a03f3c82924ff28055f5d Author: jimtabor james.tabor@reactos.org AuthorDate: Sat May 11 11:22:06 2019 -0500 Commit: jimtabor james.tabor@reactos.org 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))