From 590ebdbd6605b81fc7dea65728b5d938eb084ef8 Mon Sep 17 00:00:00 2001 From: QuentinArguillere Date: Thu, 2 Mar 2023 17:39:59 +0100 Subject: [PATCH] Fix crash when creating a chatroom. Crash was caused by a weak reference on a search result in the magic search singleton. --- Classes/MagicSearch.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Classes/MagicSearch.swift b/Classes/MagicSearch.swift index ae31303dc..7741634a5 100644 --- a/Classes/MagicSearch.swift +++ b/Classes/MagicSearch.swift @@ -20,6 +20,7 @@ import linphonesw var previousFilter : String? var magicSearch : MagicSearch var magicSearchDelegate : MagicSearchDelegate? + var lastSearch : [SearchResult]? override init() { @@ -30,6 +31,7 @@ import linphonesw magicSearchDelegate = MagicSearchDelegateStub(onSearchResultsReceived: { (magicSearch: MagicSearch) in self.needUpdateLastSearchContacts = true self.ongoingSearch = false + self.lastSearch = magicSearch.lastSearch Log.directLog(BCTBX_LOG_MESSAGE, text: "Contact magic search -- filter = \(String(describing: self.previousFilter)) -- \(magicSearch.lastSearch.count) contact founds") NotificationCenter.default.post(name: Notification.Name(kLinphoneMagicSearchFinished), object: self) }, onLdapHaveMoreResults: { (magicSearch: MagicSearch, ldap: Ldap) in @@ -101,8 +103,10 @@ import linphonesw @objc func getLastSearchResults() -> UnsafeMutablePointer? { var cList: UnsafeMutablePointer? = nil - for data in magicSearch.lastSearch { - cList = bctbx_list_append(cList, UnsafeMutableRawPointer(data.getCobject)) + if let search = lastSearch { + for data in search { + cList = bctbx_list_append(cList, UnsafeMutableRawPointer(data.getCobject)) + } } return cList }