Skip to content
Permalink
Browse files

[Gdi32] Batch Type Select Mode for Testing

Do not allow setting hdc if no batch type is found.
See CORE-15988.
  • Loading branch information...
jimtabor committed May 11, 2019
1 parent 34cbb45 commit 5418f394ab22b376f29a03f3c82924ff28055f5d
Showing with 10 additions and 10 deletions.
  1. +10 −10 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))

0 comments on commit 5418f39

Please sign in to comment.
You can’t perform that action at this time.