From 4c93d335ff4e2e7eae6ad56fb8cecbdc9c38a8b1 Mon Sep 17 00:00:00 2001 From: Benoit Martins Date: Fri, 6 Jan 2023 15:39:05 +0100 Subject: [PATCH] Acquire a new reference to the chat message if old reference is nil --- Classes/LinphoneUI/UIChatBubbleTextCell.m | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/Classes/LinphoneUI/UIChatBubbleTextCell.m b/Classes/LinphoneUI/UIChatBubbleTextCell.m index aff777ac4..d1d42368a 100644 --- a/Classes/LinphoneUI/UIChatBubbleTextCell.m +++ b/Classes/LinphoneUI/UIChatBubbleTextCell.m @@ -119,16 +119,21 @@ } - (void)setChatMessageForCbs:(LinphoneChatMessage *)amessage { - if (!amessage || amessage == _message) { + if (amessage == _message) { return; } - + if (_message){ + linphone_chat_message_unref(_message); + } _message = amessage; - linphone_chat_message_set_user_data(_message, (void *)CFBridgingRetain(self)); - LinphoneChatMessageCbs *cbs = linphone_chat_message_get_callbacks(_message); - linphone_chat_message_cbs_set_msg_state_changed(cbs, message_status); - linphone_chat_message_cbs_set_participant_imdn_state_changed(cbs, participant_imdn_status); - linphone_chat_message_cbs_set_user_data(cbs, (void *)_event); + if (amessage){ + linphone_chat_message_ref(amessage); + linphone_chat_message_set_user_data(_message, (void *)CFBridgingRetain(self)); + LinphoneChatMessageCbs *cbs = linphone_chat_message_get_callbacks(_message); + linphone_chat_message_cbs_set_msg_state_changed(cbs, message_status); + linphone_chat_message_cbs_set_participant_imdn_state_changed(cbs, participant_imdn_status); + linphone_chat_message_cbs_set_user_data(cbs, (void *)_event); + } } + (NSString *)TextMessageForChat:(LinphoneChatMessage *)message {