Title: [150068] trunk/Source/WebKit2
- Revision
- 150068
- Author
- jocelyn.turco...@digia.com
- Date
- 2013-05-14 05:54:06 -0700 (Tue, 14 May 2013)
Log Message
[WK2][Win] Fix ASSERT(DeleteTimerQueueTimer...)
https://bugs.webkit.org/show_bug.cgi?id=116039
Reviewed by Benjamin Poulain.
According to the documentation, DeleteTimerQueueTimer can be expected to return
false with an ERROR_IO_PENDING error when called from the timer's callback.
* Platform/win/WorkQueueWin.cpp:
(WorkQueue::timerCallback):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (150067 => 150068)
--- trunk/Source/WebKit2/ChangeLog 2013-05-14 12:51:59 UTC (rev 150067)
+++ trunk/Source/WebKit2/ChangeLog 2013-05-14 12:54:06 UTC (rev 150068)
@@ -1,3 +1,16 @@
+2013-05-14 Jocelyn Turcotte <jocelyn.turco...@digia.com>
+
+ [WK2][Win] Fix ASSERT(DeleteTimerQueueTimer...)
+ https://bugs.webkit.org/show_bug.cgi?id=116039
+
+ Reviewed by Benjamin Poulain.
+
+ According to the documentation, DeleteTimerQueueTimer can be expected to return
+ false with an ERROR_IO_PENDING error when called from the timer's callback.
+
+ * Platform/win/WorkQueueWin.cpp:
+ (WorkQueue::timerCallback):
+
2013-05-14 Alexey Proskuryakov <a...@apple.com>
Remove unused "type" field from DictionaryPopupInfo
Modified: trunk/Source/WebKit2/Platform/win/WorkQueueWin.cpp (150067 => 150068)
--- trunk/Source/WebKit2/Platform/win/WorkQueueWin.cpp 2013-05-14 12:51:59 UTC (rev 150067)
+++ trunk/Source/WebKit2/Platform/win/WorkQueueWin.cpp 2013-05-14 12:54:06 UTC (rev 150068)
@@ -227,8 +227,10 @@
MutexLocker lock(timerContext->timerMutex);
ASSERT(timerContext->timer);
ASSERT(timerContext->queue->m_timerQueue);
- if (!::DeleteTimerQueueTimer(timerContext->queue->m_timerQueue, timerContext->timer, 0))
- ASSERT_WITH_MESSAGE(false, "::DeleteTimerQueueTimer failed with error %lu", ::GetLastError());
+ if (!::DeleteTimerQueueTimer(timerContext->queue->m_timerQueue, timerContext->timer, 0)) {
+ // Getting ERROR_IO_PENDING here means that the timer will be destroyed once the callback is done executing.
+ ASSERT_WITH_MESSAGE(::GetLastError() == ERROR_IO_PENDING, "::DeleteTimerQueueTimer failed with error %lu", ::GetLastError());
+ }
}
void WorkQueue::dispatchAfterDelay(const Function<void()>& function, double delay)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes