diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-06-04 08:00:50 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-06-04 08:00:50 (GMT) |
commit | e7e4804ec38d25f8a2cf0461d2a72af0a446c6f6 (patch) | |
tree | 340a02fadf15f286b5a4411951529ca7cbb3ad04 | |
parent | 146c45fbcd39556caed1c2c0c431641b0656e52d (diff) | |
parent | 4325864c7b0017dd4d2e0aa060f01a319a6bdeaa (diff) | |
download | Qt-e7e4804ec38d25f8a2cf0461d2a72af0a446c6f6.zip Qt-e7e4804ec38d25f8a2cf0461d2a72af0a446c6f6.tar.gz Qt-e7e4804ec38d25f8a2cf0461d2a72af0a446c6f6.tar.bz2 |
Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.6-integration
* '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1:
Updated WebKit from /home/shausman/src/webkit/trunk to qtwebkit/qtwebkit-4.6 ( d6d6c3821ed111b214a753f1ce8fa969c1a94dc3 )
-rw-r--r-- | src/3rdparty/webkit/VERSION | 2 | ||||
-rw-r--r-- | src/3rdparty/webkit/WebCore/ChangeLog | 20 | ||||
-rw-r--r-- | src/3rdparty/webkit/WebCore/platform/qt/SharedTimerQt.cpp | 24 |
3 files changed, 40 insertions, 6 deletions
diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION index b57b607..51d663b 100644 --- a/src/3rdparty/webkit/VERSION +++ b/src/3rdparty/webkit/VERSION @@ -8,4 +8,4 @@ The commit imported was from the and has the sha1 checksum - b9dcd9c168d9b25deb020837a67f30c2d72c9afb + d6d6c3821ed111b214a753f1ce8fa969c1a94dc3 diff --git a/src/3rdparty/webkit/WebCore/ChangeLog b/src/3rdparty/webkit/WebCore/ChangeLog index 2d905b0..c3df1bf 100644 --- a/src/3rdparty/webkit/WebCore/ChangeLog +++ b/src/3rdparty/webkit/WebCore/ChangeLog @@ -1,3 +1,23 @@ +2010-04-19 Balazs Kelemen <kb@inf.u-szeged.hu> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Destroy SharedTimerQt before destruction of QCoreApplication. + + To avoid unsafe situations caused by running WebCore code (through firing timers) when destruction of QCoreApplication + has been started, we should explicitly destroy the SharedTimerQt instance on application exit. + We can achieve that through installing a self-destroying slot for the QCoreApplication::aboutToQuit() signal + into the SharedTimerQt instance. + + https://bugs.webkit.org/show_bug.cgi?id=36832 + + No functional change so no new tests. + + * platform/qt/SharedTimerQt.cpp: + (WebCore::SharedTimerQt::SharedTimerQt): + (WebCore::SharedTimerQt::destroy): + (WebCore::SharedTimerQt::inst): + 2010-05-04 Tucker Jay <jay.tucker@nokia.com> Reviewed by Holger Freyther. diff --git a/src/3rdparty/webkit/WebCore/platform/qt/SharedTimerQt.cpp b/src/3rdparty/webkit/WebCore/platform/qt/SharedTimerQt.cpp index e9bcaee..7c0fd05 100644 --- a/src/3rdparty/webkit/WebCore/platform/qt/SharedTimerQt.cpp +++ b/src/3rdparty/webkit/WebCore/platform/qt/SharedTimerQt.cpp @@ -40,6 +40,8 @@ namespace WebCore { class SharedTimerQt : public QObject { + Q_OBJECT + friend void setSharedTimerFiredFunction(void (*f)()); public: static SharedTimerQt* inst(); @@ -50,15 +52,18 @@ public: protected: void timerEvent(QTimerEvent* ev); +private slots: + void destroy(); + private: - SharedTimerQt(QObject* parent); + SharedTimerQt(); ~SharedTimerQt(); QBasicTimer m_timer; void (*m_timerFunction)(); }; -SharedTimerQt::SharedTimerQt(QObject* parent) - : QObject(parent) +SharedTimerQt::SharedTimerQt() + : QObject() , m_timerFunction(0) {} @@ -68,11 +73,18 @@ SharedTimerQt::~SharedTimerQt() (m_timerFunction)(); } +void SharedTimerQt::destroy() +{ + delete this; +} + SharedTimerQt* SharedTimerQt::inst() { static QPointer<SharedTimerQt> timer; - if (!timer) - timer = new SharedTimerQt(QCoreApplication::instance()); + if (!timer) { + timer = new SharedTimerQt(); + timer->connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), SLOT(destroy())); + } return timer; } @@ -129,6 +141,8 @@ void stopSharedTimer() SharedTimerQt::inst()->stop(); } +#include "SharedTimerQt.moc" + } // vim: ts=4 sw=4 et |