summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2011-01-10 16:45:05 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2011-01-10 16:45:05 (GMT)
commitf0b854bf5cfc6ec4715ff5f4aed3f0bd189d24ee (patch)
tree195a47b88ae55179330334a8e17da49b0a427de7 /src/corelib
parent8ef9b5f9d125a81b4268d5c88ab609089720df65 (diff)
parentd62e9f4a6fe199ae790b1561fd4ba9ea84bd4d1e (diff)
downloadQt-f0b854bf5cfc6ec4715ff5f4aed3f0bd189d24ee.zip
Qt-f0b854bf5cfc6ec4715ff5f4aed3f0bd189d24ee.tar.gz
Qt-f0b854bf5cfc6ec4715ff5f4aed3f0bd189d24ee.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: Setting WA_TranslucentBackground after winid() is ineffective on Symbian. Fix handle leak in symbian QTimer implementation
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/kernel/qeventdispatcher_symbian.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/corelib/kernel/qeventdispatcher_symbian.cpp b/src/corelib/kernel/qeventdispatcher_symbian.cpp
index bb9bd01..99c4087 100644
--- a/src/corelib/kernel/qeventdispatcher_symbian.cpp
+++ b/src/corelib/kernel/qeventdispatcher_symbian.cpp
@@ -217,13 +217,13 @@ QTimerActiveObject::QTimerActiveObject(QEventDispatcherSymbian *dispatcher, Symb
QTimerActiveObject::~QTimerActiveObject()
{
Cancel();
+ m_rTimer.Close(); //close of null handle is safe
}
void QTimerActiveObject::DoCancel()
{
if (m_timerInfo->interval > 0) {
m_rTimer.Cancel();
- m_rTimer.Close();
} else {
if (iStatus.Int() == KRequestPending) {
TRequestStatus *status = &iStatus;
@@ -302,7 +302,9 @@ void QTimerActiveObject::Start()
CActiveScheduler::Add(this);
m_timerInfo->msLeft = m_timerInfo->interval;
if (m_timerInfo->interval > 0) {
- m_rTimer.CreateLocal();
+ if (!m_rTimer.Handle()) {
+ qt_symbian_throwIfError(m_rTimer.CreateLocal());
+ }
StartTimer();
} else {
iStatus = KRequestPending;