diff --git a/Linphone/core/chat/message/ChatMessageCore.cpp b/Linphone/core/chat/message/ChatMessageCore.cpp index a9b2502a9..786ce9c9d 100644 --- a/Linphone/core/chat/message/ChatMessageCore.cpp +++ b/Linphone/core/chat/message/ChatMessageCore.cpp @@ -304,18 +304,25 @@ void ChatMessageCore::setSelf(QSharedPointer me) { &ChatMessageModel::fileTransferProgressIndication, [this](const std::shared_ptr &message, const std::shared_ptr &content, size_t offset, size_t total) { - mChatMessageModelConnection->invokeToCore([this, content, offset, total] { - auto it = - std::find_if(mChatMessageContentList.begin(), mChatMessageContentList.end(), - [content](QSharedPointer item) { - return item->getContentModel()->getContent()->getName() == content->getName(); - }); - if (it != mChatMessageContentList.end()) { - auto contentCore = mChatMessageContentList.at(std::distance(mChatMessageContentList.begin(), it)); - assert(contentCore); - contentCore->setFileOffset(offset); - } - }); + try { + mChatMessageModelConnection->invokeToCore([this, content, offset, total] { + auto it = + std::find_if(mChatMessageContentList.begin(), mChatMessageContentList.end(), + [content](QSharedPointer item) { + return item->getContentModel()->getContent()->getName() == content->getName(); + }); + if (it != mChatMessageContentList.end()) { + auto contentCore = + mChatMessageContentList.at(std::distance(mChatMessageContentList.begin(), it)); + assert(contentCore); + contentCore->setFileOffset(offset); + } + }); + } catch (const std::exception &ex) { + lFatal() << log() + .arg("Exception has been catch in signal fileTransferProgressIndication : %1") + .arg(ex.what()); + } }); mChatMessageModelConnection->makeConnectToModel( diff --git a/Linphone/model/chat/message/ChatMessageModel.cpp b/Linphone/model/chat/message/ChatMessageModel.cpp index d1a81c12f..aa23e008c 100644 --- a/Linphone/model/chat/message/ChatMessageModel.cpp +++ b/Linphone/model/chat/message/ChatMessageModel.cpp @@ -190,7 +190,11 @@ void ChatMessageModel::onFileTransferProgressIndication(const std::shared_ptr
  • &content, size_t offset, size_t total) { - emit fileTransferProgressIndication(message, content, offset, total); + try { + emit fileTransferProgressIndication(message, content, offset, total); + } catch (const std::exception &ex) { + lFatal() << log().arg("Exception has been catch in signal fileTransferProgressIndication : %1").arg(ex.what()); + } } void ChatMessageModel::onParticipantImdnStateChanged(