From 1291e7dee4350199c6c6540f555fd3b4d89d4a9c Mon Sep 17 00:00:00 2001 From: Christophe Deschamps Date: Mon, 21 Nov 2022 14:46:44 +0100 Subject: [PATCH] Protect _chatRoom dependent sub function calls --- Classes/ChatConversationView.m | 46 +++++++++++++++++----------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/Classes/ChatConversationView.m b/Classes/ChatConversationView.m index 00184dfaa..a7128c1ee 100644 --- a/Classes/ChatConversationView.m +++ b/Classes/ChatConversationView.m @@ -335,19 +335,19 @@ static UICompositeViewDescription *compositeDescription = nil; LinphoneAddress *peerAddr = linphone_core_create_address([LinphoneManager getLc], _peerAddress); if (peerAddr) { _chatRoom = linphone_core_get_chat_room([LinphoneManager getLc], peerAddr); - isOneToOne = linphone_chat_room_get_capabilities(_chatRoom) & LinphoneChatRoomCapabilitiesOneToOne; - isEncrypted = linphone_chat_room_get_capabilities(_chatRoom) & LinphoneChatRoomCapabilitiesEncrypted; - if (_chatRoom) + if (_chatRoom) { + isOneToOne = linphone_chat_room_get_capabilities(_chatRoom) & LinphoneChatRoomCapabilitiesOneToOne; + isEncrypted = linphone_chat_room_get_capabilities(_chatRoom) & LinphoneChatRoomCapabilitiesEncrypted; [self setComposingVisible:!composingVisible withDelay:0]; + [self configureForRoom:true]; + [_tableController scrollToBottom:true]; + } } - [self configureForRoom:true]; _backButton.hidden = _tableController.isEditing; - [_tableController scrollToBottom:true]; - [self refreshImageDrawer]; + [self refreshImageDrawer]; [self stopAllPlays]; [self keyboardWillHide:nil]; - } #pragma mark - @@ -501,25 +501,25 @@ static UICompositeViewDescription *compositeDescription = nil; // reload the chatroom after the core starts - (void)onLinphoneCoreReady:(NSNotification *)notif { - // if ((LinphoneGlobalState)[[[notif userInfo] valueForKey:@"state"] integerValue] == LinphoneGlobalOn) { if (linphone_core_get_global_state(LC) == LinphoneGlobalOn) { - LinphoneAddress *peerAddr = linphone_core_create_address([LinphoneManager getLc], _peerAddress); - if (peerAddr) { - _chatRoom = linphone_core_get_chat_room([LinphoneManager getLc], peerAddr); - isOneToOne = linphone_chat_room_get_capabilities(_chatRoom) & LinphoneChatRoomCapabilitiesOneToOne; - isEncrypted = linphone_chat_room_get_capabilities(_chatRoom) & LinphoneChatRoomCapabilitiesEncrypted; - } - [self configureForRoom:self.editing]; - if (_chatRoom && _markAsRead) { - if (IPAD) { - [VIEW(ChatsListView).tableController loadData]; + LinphoneAddress *peerAddr = linphone_core_create_address([LinphoneManager getLc], _peerAddress); + if (peerAddr) { + _chatRoom = linphone_core_get_chat_room([LinphoneManager getLc], peerAddr); + if (_chatRoom) { + isOneToOne = linphone_chat_room_get_capabilities(_chatRoom) & LinphoneChatRoomCapabilitiesOneToOne; + isEncrypted = linphone_chat_room_get_capabilities(_chatRoom) & LinphoneChatRoomCapabilitiesEncrypted; + [self configureForRoom:self.editing]; + if (_chatRoom && _markAsRead) { + if (IPAD) { + [VIEW(ChatsListView).tableController loadData]; + } + [ChatConversationView markAsRead:_chatRoom]; + } + _markAsRead = TRUE; } - - [ChatConversationView markAsRead:_chatRoom]; - } - _markAsRead = TRUE; + } [SVProgressHUD dismiss]; - } + } } - (void)callUpdateEvent:(NSNotification *)notif {