- PATCH: Arty's fixes based on CMake branch testing. Just the timer code. See bug 6103.

svn path=/trunk/; revision=51315
This commit is contained in:
James Tabor 2011-04-11 03:24:14 +00:00
parent 52ce60c8d8
commit e059680fea

View file

@ -107,10 +107,11 @@ FindTimer(PWND Window,
UINT_PTR nID, UINT_PTR nID,
UINT flags) UINT flags)
{ {
PLIST_ENTRY pLE = TimersListHead.Flink; PLIST_ENTRY pLE;
PTIMER pTmr, RetTmr = NULL; PTIMER pTmr, RetTmr = NULL;
TimerEnterExclusive(); TimerEnterExclusive();
pLE = TimersListHead.Flink;
while (pLE != &TimersListHead) while (pLE != &TimersListHead)
{ {
pTmr = CONTAINING_RECORD(pLE, TIMER, ptmrList); pTmr = CONTAINING_RECORD(pLE, TIMER, ptmrList);
@ -134,10 +135,11 @@ PTIMER
FASTCALL FASTCALL
FindSystemTimer(PMSG pMsg) FindSystemTimer(PMSG pMsg)
{ {
PLIST_ENTRY pLE = TimersListHead.Flink; PLIST_ENTRY pLE;
PTIMER pTmr = NULL; PTIMER pTmr = NULL;
TimerEnterExclusive(); TimerEnterExclusive();
pLE = TimersListHead.Flink;
while (pLE != &TimersListHead) while (pLE != &TimersListHead)
{ {
pTmr = CONTAINING_RECORD(pLE, TIMER, ptmrList); pTmr = CONTAINING_RECORD(pLE, TIMER, ptmrList);
@ -158,11 +160,12 @@ FASTCALL
ValidateTimerCallback(PTHREADINFO pti, ValidateTimerCallback(PTHREADINFO pti,
LPARAM lParam) LPARAM lParam)
{ {
PLIST_ENTRY pLE = TimersListHead.Flink; PLIST_ENTRY pLE;
BOOL Ret = FALSE; BOOL Ret = FALSE;
PTIMER pTmr; PTIMER pTmr;
TimerEnterExclusive(); TimerEnterExclusive();
pLE = TimersListHead.Flink;
while (pLE != &TimersListHead) while (pLE != &TimersListHead)
{ {
pTmr = CONTAINING_RECORD(pLE, TIMER, ptmrList); pTmr = CONTAINING_RECORD(pLE, TIMER, ptmrList);
@ -389,7 +392,7 @@ BOOL
FASTCALL FASTCALL
PostTimerMessages(PWND Window) PostTimerMessages(PWND Window)
{ {
PLIST_ENTRY pLE = TimersListHead.Flink; PLIST_ENTRY pLE;
PUSER_MESSAGE_QUEUE ThreadQueue; PUSER_MESSAGE_QUEUE ThreadQueue;
MSG Msg; MSG Msg;
PTHREADINFO pti; PTHREADINFO pti;
@ -400,7 +403,7 @@ PostTimerMessages(PWND Window)
ThreadQueue = pti->MessageQueue; ThreadQueue = pti->MessageQueue;
TimerEnterExclusive(); TimerEnterExclusive();
pLE = TimersListHead.Flink;
while(pLE != &TimersListHead) while(pLE != &TimersListHead)
{ {
pTmr = CONTAINING_RECORD(pLE, TIMER, ptmrList); pTmr = CONTAINING_RECORD(pLE, TIMER, ptmrList);
@ -441,12 +444,12 @@ ProcessTimers(VOID)
{ {
LARGE_INTEGER TickCount, DueTime; LARGE_INTEGER TickCount, DueTime;
LONG Time; LONG Time;
PLIST_ENTRY pLE = TimersListHead.Flink; PLIST_ENTRY pLE;
PTIMER pTmr; PTIMER pTmr;
LONG TimerCount = 0; LONG TimerCount = 0;
TimerEnterExclusive(); TimerEnterExclusive();
pLE = TimersListHead.Flink;
KeQueryTickCount(&TickCount); KeQueryTickCount(&TickCount);
Time = MsqCalculateMessageTime(&TickCount); Time = MsqCalculateMessageTime(&TickCount);
@ -515,7 +518,7 @@ ProcessTimers(VOID)
BOOL FASTCALL BOOL FASTCALL
DestroyTimersForWindow(PTHREADINFO pti, PWND Window) DestroyTimersForWindow(PTHREADINFO pti, PWND Window)
{ {
PLIST_ENTRY pLE = TimersListHead.Flink; PLIST_ENTRY pLE;
PTIMER pTmr; PTIMER pTmr;
BOOL TimersRemoved = FALSE; BOOL TimersRemoved = FALSE;
@ -523,7 +526,7 @@ DestroyTimersForWindow(PTHREADINFO pti, PWND Window)
return FALSE; return FALSE;
TimerEnterExclusive(); TimerEnterExclusive();
pLE = TimersListHead.Flink;
while(pLE != &TimersListHead) while(pLE != &TimersListHead)
{ {
pTmr = CONTAINING_RECORD(pLE, TIMER, ptmrList); pTmr = CONTAINING_RECORD(pLE, TIMER, ptmrList);
@ -570,14 +573,14 @@ IntKillTimer(PWND Window, UINT_PTR IDEvent, BOOL SystemTimer)
DPRINT("IntKillTimer Window %x id %p systemtimer %s\n", DPRINT("IntKillTimer Window %x id %p systemtimer %s\n",
Window, IDEvent, SystemTimer ? "TRUE" : "FALSE"); Window, IDEvent, SystemTimer ? "TRUE" : "FALSE");
TimerEnterExclusive();
pTmr = FindTimer(Window, IDEvent, SystemTimer ? TMRF_SYSTEM : 0); pTmr = FindTimer(Window, IDEvent, SystemTimer ? TMRF_SYSTEM : 0);
if (pTmr) if (pTmr)
{ {
TimerEnterExclusive();
RemoveTimer(pTmr); RemoveTimer(pTmr);
TimerLeave();
} }
TimerLeave();
return pTmr ? TRUE : FALSE; return pTmr ? TRUE : FALSE;
} }