Title: [118217] branches/safari-536-branch/Source/WebCore
Revision
118217
Author
[email protected]
Date
2012-05-23 11:51:40 -0700 (Wed, 23 May 2012)

Log Message

Merged r117625.

Modified Paths

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

Reply via email to