diff --git a/reactos/subsystems/win32/win32k/objects/gdibatch.c b/reactos/subsystems/win32/win32k/objects/gdibatch.c index 08f664f9fa5..c6261508d73 100644 --- a/reactos/subsystems/win32/win32k/objects/gdibatch.c +++ b/reactos/subsystems/win32/win32k/objects/gdibatch.c @@ -18,9 +18,9 @@ ULONG FASTCALL GdiFlushUserBatch(HDC hDC, PGDIBATCHHDR pHdr) { - PDC dc = DC_LockDc(hDC); - if (!dc) return 0; - // The thread is on the end of sunset. + PDC dc = NULL; + if (hDC) dc = DC_LockDc(hDC); + // The thread is approaching the end of sunset. switch(pHdr->Cmd) { case GdiBCPatBlt: // Highest pri first! @@ -33,6 +33,7 @@ GdiFlushUserBatch(HDC hDC, PGDIBATCHHDR pHdr) break; case GdiBCSetBrushOrg: { + if (!dc) break; PGDIBSSETBRHORG pgSBO = (PGDIBSSETBRHORG) pHdr; dc->Dc_Attr.ptlBrushOrigin = pgSBO->ptlBrushOrigin; break; @@ -49,10 +50,9 @@ GdiFlushUserBatch(HDC hDC, PGDIBATCHHDR pHdr) break; } default: - DC_UnlockDc(dc); - return 0; + break; } - DC_UnlockDc(dc); + if (dc) DC_UnlockDc(dc); return pHdr->Size; // Return the full size of the structure. }