Forget what I said about acpi hack being nasty the other day. After looking at this one....
Aleksey.
-------------------------------------------------- From: jimtabor@svn.reactos.org Sent: Tuesday, March 23, 2010 4:34 AM To: ros-diffs@reactos.org Subject: [ros-diffs] [jimtabor] 46349: - Hack fix for gdibatch,please retest Acrobat reader 7.
Author: jimtabor Date: Tue Mar 23 02:34:30 2010 New Revision: 46349
URL: http://svn.reactos.org/svn/reactos?rev=46349&view=rev Log:
- Hack fix for gdibatch, please retest Acrobat reader 7.
Modified: trunk/reactos/subsystems/win32/win32k/objects/gdibatch.c
Modified: trunk/reactos/subsystems/win32/win32k/objects/gdibatch.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/obj... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/objects/gdibatch.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/objects/gdibatch.c [iso-8859-1] Tue Mar 23 02:34:30 2010 @@ -72,7 +72,7 @@ { pdcattr = dc->pdcattr; }
- // The thread is approaching the end of sunset.
- // FYI! The thread is approaching the end of sunset. switch(pHdr->Cmd) { case GdiBCPatBlt: // Highest pri first!
@@ -139,6 +139,7 @@ APIENTRY NtGdiFlushUserBatch(VOID) {
- BOOL Hit; PTEB pTeb = NtCurrentTeb(); ULONG GdiBatchCount = pTeb->GdiBatchCount;
@@ -160,8 +161,26 @@ }
// No need to init anything, just go!
for (; GdiBatchCount > 0; GdiBatchCount--){
for (Hit = FALSE; GdiBatchCount > 0; GdiBatchCount--){ /*Looks like a hack,feels like a hack,you're right it's a hack,due to the lack,of kernel thread locking when it is in sunset!*/_SEH2_TRY{((PGDIBATCHHDR)pHdr)->Cmd = ((PGDIBATCHHDR)pHdr)->Cmd;}_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER){Hit = TRUE;}_SEH2_END;if (Hit) break;// Process Gdi Batch! pHdr += GdiFlushUserBatch(pDC, (PGDIBATCHHDR) pHdr); }