Title: [118217] branches/safari-536-branch/Source/WebCore
Diff
Modified: branches/safari-536-branch/Source/WebCore/ChangeLog (118216 => 118217)
--- branches/safari-536-branch/Source/WebCore/ChangeLog 2012-05-23 18:49:44 UTC (rev 118216)
+++ branches/safari-536-branch/Source/WebCore/ChangeLog 2012-05-23 18:51:40 UTC (rev 118217)
@@ -1,5 +1,25 @@
2012-05-23 Lucas Forschler <[email protected]>
+ Merge 117625
+
+ 2012-05-18 Viatcheslav Ostapenko <[email protected]>
+
+ [Qt] REGRESSION(r117501): It made almost all tests assert in debug mode
+ https://bugs.webkit.org/show_bug.cgi?id=86854
+
+ Reviewed by Andreas Kling.
+
+ Initialize boolean flag in constructor and recheck the flag which can be
+ modified by another thread under mutex.
+
+ No new tests, fixes regression that caused layout test crash.
+
+ * loader/icon/IconDatabase.cpp:
+ (WebCore::IconDatabase::IconDatabase):
+ (WebCore::IconDatabase::syncThreadMainLoop):
+
+2012-05-23 Lucas Forschler <[email protected]>
+
Merge 117501
2012-05-15 Andreas Kling <[email protected]>
Modified: branches/safari-536-branch/Source/WebCore/loader/icon/IconDatabase.cpp (118216 => 118217)
--- branches/safari-536-branch/Source/WebCore/loader/icon/IconDatabase.cpp 2012-05-23 18:49:44 UTC (rev 118216)
+++ branches/safari-536-branch/Source/WebCore/loader/icon/IconDatabase.cpp 2012-05-23 18:51:40 UTC (rev 118217)
@@ -782,6 +782,7 @@
, m_iconURLImportComplete(false)
, m_syncThreadHasWorkToDo(false)
, m_disabledSuddenTerminationForSyncThread(false)
+ , m_retainOrReleaseIconRequested(false)
, m_initialPruningComplete(false)
, m_client(defaultClient())
, m_imported(false)
@@ -1419,7 +1420,10 @@
if (m_retainOrReleaseIconRequested) {
MutexLocker locker(m_urlAndIconLock);
- performPendingRetainAndReleaseOperations();
+ // Previous flag check was done outside of the lock and flag could be changed by another thread.
+ // Do not move mutex outside to avoid unnecessary locking on every loop, but recheck the flag under mutex.
+ if (m_retainOrReleaseIconRequested)
+ performPendingRetainAndReleaseOperations();
}
bool didAnyWork = true;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes