diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2012-04-28 00:19:52 +1000 |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2012-04-28 00:19:52 +1000 |
commit | 42f70c39e6b42a044735722962c04f5622c0a2ff (patch) | |
tree | 791a531df17fa4a6c70b334a87470a3bda19e07b | |
parent | e8b0cf87a2bd921ed3fda9dd08a2dabd4af1dbce (diff) | |
parent | 86566ea14ee5f738c3b8785154ebf3412a013731 (diff) |
Merge branch 'master' of scm.dev.nokia.troll.no:qtmobility/qtm-messaging into master-integration
* 'master' of scm.dev.nokia.troll.no:qtmobility/qtm-messaging:
Fix to crash
-rw-r--r-- | src/messaging/qfsengine_symbian.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/messaging/qfsengine_symbian.cpp b/src/messaging/qfsengine_symbian.cpp index f5517ff3cb..66eb25e358 100644 --- a/src/messaging/qfsengine_symbian.cpp +++ b/src/messaging/qfsengine_symbian.cpp @@ -2564,6 +2564,17 @@ void CFSEngine::retrieveMessageContentHeaders(QMessage& message) const { MessageCache::instance()->lock(); QMessage* msgPtr = MessageCache::instance()->messageObject(message.id().toString()); + if (msgPtr == NULL) { + MessageCache::instance()->unlock(); + msgPtr = new QMessage(); + if (this->message(msgPtr, message.id())) { + MessageCache::instance()->insertObject(msgPtr); + } else { + delete msgPtr; + return; // Just giving up. Should we throw std::bad_alloc here? + } + MessageCache::instance()->lock(); + } QMessageContentContainerPrivate* pContainer = QMessagePrivate::containerImplementation(*msgPtr); pContainer->_contentRetrieved = true; |