From aad4b89e3f99a212aa488b093ce1768528605f54 Mon Sep 17 00:00:00 2001 From: Benoit Martins Date: Tue, 19 Nov 2024 17:21:27 +0100 Subject: [PATCH] Fix nil access in background queue with temporary variables --- .../ViewModel/ConversationViewModel.swift | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift b/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift index 9cc73a6e4..9164a6bf3 100644 --- a/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift +++ b/Linphone/UI/Main/Conversations/ViewModel/ConversationViewModel.swift @@ -2278,11 +2278,14 @@ class ConversationViewModel: ObservableObject { func deleteMessage() { if self.displayedConversation != nil && selectedMessage != nil && selectedMessage!.eventModel.eventLog.chatMessage != nil { - coreContext.doOnCoreQueue { _ in - self.displayedConversation!.chatRoom.deleteMessage(message: self.selectedMessage!.eventModel.eventLog.chatMessage!) - DispatchQueue.main.async { - self.conversationMessagesSection[0].rows.remove(at: self.conversationMessagesSection[0].rows.firstIndex(of: self.selectedMessage!)!) - self.selectedMessage = nil + let chatRoomTmp = self.displayedConversation!.chatRoom + if let chatMessageTmp = self.selectedMessage!.eventModel.eventLog.chatMessage { + coreContext.doOnCoreQueue { _ in + chatRoomTmp.deleteMessage(message: chatMessageTmp) + DispatchQueue.main.async { + self.conversationMessagesSection[0].rows.remove(at: self.conversationMessagesSection[0].rows.firstIndex(of: self.selectedMessage!)!) + self.selectedMessage = nil + } } } }