mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-04-17 20:08:28 +00:00
add try/catch to fileTransferProgressIndication callback in case of crash while downloading attachment
This commit is contained in:
parent
a4602236df
commit
164d8ab4b1
2 changed files with 24 additions and 13 deletions
|
|
@ -304,18 +304,25 @@ void ChatMessageCore::setSelf(QSharedPointer<ChatMessageCore> me) {
|
|||
&ChatMessageModel::fileTransferProgressIndication,
|
||||
[this](const std::shared_ptr<linphone::ChatMessage> &message, const std::shared_ptr<linphone::Content> &content,
|
||||
size_t offset, size_t total) {
|
||||
mChatMessageModelConnection->invokeToCore([this, content, offset, total] {
|
||||
auto it =
|
||||
std::find_if(mChatMessageContentList.begin(), mChatMessageContentList.end(),
|
||||
[content](QSharedPointer<ChatMessageContentCore> 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<ChatMessageContentCore> 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(
|
||||
|
|
|
|||
|
|
@ -190,7 +190,11 @@ void ChatMessageModel::onFileTransferProgressIndication(const std::shared_ptr<li
|
|||
const std::shared_ptr<linphone::Content> &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(
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue