summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2012-04-28 00:19:52 +1000
committerQt Continuous Integration System <qt-info@nokia.com>2012-04-28 00:19:52 +1000
commit42f70c39e6b42a044735722962c04f5622c0a2ff (patch)
tree791a531df17fa4a6c70b334a87470a3bda19e07b
parente8b0cf87a2bd921ed3fda9dd08a2dabd4af1dbce (diff)
parent86566ea14ee5f738c3b8785154ebf3412a013731 (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.cpp11
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;