Title: [90907] trunk/Source/WebKit2
Revision
90907
Author
[email protected]
Date
2011-07-13 05:32:30 -0700 (Wed, 13 Jul 2011)

Log Message

[Qt][WK2] Undelayed WorkItems are leaked after execution.
https://bugs.webkit.org/show_bug.cgi?id=64447

Reviewed by Benjamin Poulain.

* Platform/qt/WorkQueueQt.cpp:
(WorkQueue::WorkItemQt::executeAndDelete):
(WorkQueue::WorkItemQt::timerEvent):
(WorkQueue::scheduleWork):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (90906 => 90907)


--- trunk/Source/WebKit2/ChangeLog	2011-07-13 12:13:10 UTC (rev 90906)
+++ trunk/Source/WebKit2/ChangeLog	2011-07-13 12:32:30 UTC (rev 90907)
@@ -1,3 +1,15 @@
+2011-07-13  Andreas Kling  <[email protected]>
+
+        [Qt][WK2] Undelayed WorkItems are leaked after execution.
+        https://bugs.webkit.org/show_bug.cgi?id=64447
+
+        Reviewed by Benjamin Poulain.
+
+        * Platform/qt/WorkQueueQt.cpp:
+        (WorkQueue::WorkItemQt::executeAndDelete):
+        (WorkQueue::WorkItemQt::timerEvent):
+        (WorkQueue::scheduleWork):
+
 2011-07-12  Jocelyn Turcotte  <[email protected]>
 
         [Qt] Also stop the scale commit timer when commitScaleChange is called explicitly.

Modified: trunk/Source/WebKit2/Platform/qt/WorkQueueQt.cpp (90906 => 90907)


--- trunk/Source/WebKit2/Platform/qt/WorkQueueQt.cpp	2011-07-13 12:13:10 UTC (rev 90906)
+++ trunk/Source/WebKit2/Platform/qt/WorkQueueQt.cpp	2011-07-13 12:32:30 UTC (rev 90907)
@@ -65,12 +65,17 @@
             m_workItem->execute();
     }
 
-    virtual void timerEvent(QTimerEvent*)
+    Q_SLOT void executeAndDelete()
     {
-        execute(); 
+        execute();
         delete this;
     }
 
+    virtual void timerEvent(QTimerEvent*)
+    {
+        executeAndDelete();
+    }
+
     WorkQueue* m_queue;
     QObject* m_source;
     const char* m_signal;
@@ -108,7 +113,7 @@
 {
     WorkQueue::WorkItemQt* itemQt = new WorkQueue::WorkItemQt(this, item.leakPtr());
     itemQt->moveToThread(m_workThread);
-    QMetaObject::invokeMethod(itemQt, "execute", Qt::QueuedConnection);
+    QMetaObject::invokeMethod(itemQt, "executeAndDelete", Qt::QueuedConnection);
 }
 
 void WorkQueue::scheduleWorkAfterDelay(PassOwnPtr<WorkItem> item, double delayInSecond)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to