Fix NetworkHelper deallocation after adopting weak in MTContext

This commit is contained in:
Ali 2023-11-08 16:37:21 +04:00
parent 037ebcf764
commit 2ba969a5cb

View File

@ -662,6 +662,9 @@ private final class NetworkHelper: NSObject, MTContextChangeListener {
self.contextLoggedOutUpdated = contextLoggedOutUpdated self.contextLoggedOutUpdated = contextLoggedOutUpdated
} }
deinit {
}
func fetchContextDatacenterPublicKeys(_ context: MTContext, datacenterId: Int) -> MTSignal { func fetchContextDatacenterPublicKeys(_ context: MTContext, datacenterId: Int) -> MTSignal {
return MTSignal { subscriber in return MTSignal { subscriber in
let disposable = self.requestPublicKeys(datacenterId).start(next: { next in let disposable = self.requestPublicKeys(datacenterId).start(next: { next in
@ -737,6 +740,7 @@ public final class Network: NSObject, MTRequestMessageServiceDelegate {
private let queue: Queue private let queue: Queue
public let datacenterId: Int public let datacenterId: Int
public let context: MTContext public let context: MTContext
private var networkHelper: NetworkHelper?
let mtProto: MTProto let mtProto: MTProto
let requestService: MTRequestMessageService let requestService: MTRequestMessageService
let basePath: String let basePath: String
@ -811,7 +815,7 @@ public final class Network: NSObject, MTRequestMessageServiceDelegate {
} }
let _contextProxyId = self._contextProxyId let _contextProxyId = self._contextProxyId
context.add(NetworkHelper(requestPublicKeys: { [weak self] id in let networkHelper = NetworkHelper(requestPublicKeys: { [weak self] id in
if let strongSelf = self { if let strongSelf = self {
return strongSelf.request(Api.functions.help.getCdnConfig()) return strongSelf.request(Api.functions.help.getCdnConfig())
|> map(Optional.init) |> map(Optional.init)
@ -852,7 +856,9 @@ public final class Network: NSObject, MTRequestMessageServiceDelegate {
}, contextLoggedOutUpdated: { [weak self] in }, contextLoggedOutUpdated: { [weak self] in
Logger.shared.log("Network", "contextLoggedOut") Logger.shared.log("Network", "contextLoggedOut")
self?.loggedOut?() self?.loggedOut?()
})) })
self.networkHelper = networkHelper
context.add(networkHelper)
requestService.delegate = self requestService.delegate = self
self._multiplexedRequestManager = MultiplexedRequestManager(takeWorker: { [weak self] target, tag, continueInBackground in self._multiplexedRequestManager = MultiplexedRequestManager(takeWorker: { [weak self] target, tag, continueInBackground in