fix(CoreManager): replace assert by log if chat model id is invalid in getChatModel (avoid crash for specific migrated chat rooms)

This commit is contained in:
Ronan Abhamon 2018-10-10 15:36:48 +02:00 committed by Ronan
parent 0b3fd4bea2
commit bc0de77024

View file

@ -121,8 +121,14 @@ shared_ptr<ChatModel> CoreManager::getChatModel (const QString &peerAddress, con
// Create a new chat model.
QPair<QString, QString> chatModelId{ peerAddress, localAddress };
if (!mChatModels.contains(chatModelId)) {
Q_ASSERT(mCore->createAddress(Utils::appStringToCoreString(peerAddress)));
Q_ASSERT(mCore->createAddress(Utils::appStringToCoreString(localAddress)));
if (
!mCore->createAddress(Utils::appStringToCoreString(peerAddress)) ||
!mCore->createAddress(Utils::appStringToCoreString(localAddress))
) {
qWarning() << QStringLiteral("Unable to get chat model from invalid chat model id: (%1, %2).")
.arg(peerAddress).arg(localAddress);
return nullptr;
}
auto deleter = [this, chatModelId](ChatModel *chatModel) {
bool removed = mChatModels.remove(chatModelId);