src/hbcore/utils/hbtimer.cpp
changeset 21 4633027730f5
parent 5 627c4a0fd0e7
--- a/src/hbcore/utils/hbtimer.cpp	Tue Jul 06 14:36:53 2010 +0300
+++ b/src/hbcore/utils/hbtimer.cpp	Wed Aug 18 10:05:37 2010 +0300
@@ -46,10 +46,13 @@
     void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) {
         if (oldState != QAbstractAnimation::Stopped && newState == QAbstractAnimation::Stopped && mEntry) {
             mEntry->timerFired();
-            mEntry->mAnim = 0; // to prevent confusing unregisterEntry() and double deletion
-            HbTimer::instance()->unregisterEntry(mEntry);
-            if (mEntry->mDeleteWhenFinishedNormally) {
-                delete mEntry;
+            // mEntry may be nulled out due to an unregister call from the callback.
+            if (mEntry) {
+                mEntry->mAnim = 0; // to prevent confusing unregisterEntry() and double deletion
+                HbTimer::instance()->unregisterEntry(mEntry);
+                if (mEntry->mDeleteWhenFinishedNormally) {
+                    delete mEntry;
+                }
             }
         }
     }