summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOleh Vasyura <qt-info@nokia.com>2010-07-21 10:48:57 (GMT)
committerJason McDonald <jason.mcdonald@nokia.com>2010-09-02 06:23:58 (GMT)
commit7f53610d7702a9453022429abbc537fd1a5d5cb1 (patch)
treec6bec9c8f566c17a8540cf0f6245ad9a33debcbb
parent2b1d027180fcea0e575c59818fc21541ff235f58 (diff)
downloadQt-7f53610d7702a9453022429abbc537fd1a5d5cb1.zip
Qt-7f53610d7702a9453022429abbc537fd1a5d5cb1.tar.gz
Qt-7f53610d7702a9453022429abbc537fd1a5d5cb1.tar.bz2
Fix crash caused by not clearing the QPixmapCache on application exit.
The qt_cleanup() function will call CCoeEnv::DestroyEnvironment() on application shutdown. This destruction will in turn tear down the various server sessions associated with the application. One of these sessions is the FBSERV session and if the QPixmapCache attempts to delete a CFbsBitmap after the session has been destroyed, the app will crash. The solution is call QPixmapCache::cleanup() before we destroy the environment. This is inline with what the other platforms do. Reviewed-by: Jason Barron (cherry picked from commit 55625badfab6bfe49c60ab5cd9a586c6bd511579)
-rw-r--r--src/gui/kernel/qapplication_s60.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index 424f1f1..ac25f8f 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -1511,6 +1511,8 @@ void qt_cleanup()
qt_S60Beep = 0;
}
QFontCache::cleanup(); // Has to happen now, since QFontEngineS60 has FBS handles
+ QPixmapCache::clear(); // Has to happen now, since QS60PixmapData has FBS handles
+
qt_cleanup_symbianFontDatabaseExtras();
// S60 structure and window server session are freed in eventdispatcher destructor as they are needed there