mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 22:55:00 +00:00
Fix memory leaks
This commit is contained in:
@@ -1524,7 +1524,10 @@ public func standaloneStateManager(
|
|||||||
|> map { network -> AccountStateManager? in
|
|> map { network -> AccountStateManager? in
|
||||||
Logger.shared.log("StandaloneStateManager", "received network")
|
Logger.shared.log("StandaloneStateManager", "received network")
|
||||||
|
|
||||||
postbox.mediaBox.fetchResource = { resource, intervals, parameters -> Signal<MediaResourceDataFetchResult, MediaResourceDataFetchError> in
|
postbox.mediaBox.fetchResource = { [weak postbox] resource, intervals, parameters -> Signal<MediaResourceDataFetchResult, MediaResourceDataFetchError> in
|
||||||
|
guard let postbox else {
|
||||||
|
return .never()
|
||||||
|
}
|
||||||
if let result = auxiliaryMethods.fetchResource(
|
if let result = auxiliaryMethods.fetchResource(
|
||||||
postbox,
|
postbox,
|
||||||
resource,
|
resource,
|
||||||
|
|||||||
@@ -50,11 +50,11 @@ final class NetworkStatsContext {
|
|||||||
|
|
||||||
private final class Impl {
|
private final class Impl {
|
||||||
let queue: Queue
|
let queue: Queue
|
||||||
let postbox: Postbox
|
weak var postbox: Postbox?
|
||||||
|
|
||||||
var averageTargetStats: [TargetKey: AverageStats] = [:]
|
var averageTargetStats: [TargetKey: AverageStats] = [:]
|
||||||
|
|
||||||
init(queue: Queue, postbox: Postbox) {
|
init(queue: Queue, postbox: Postbox?) {
|
||||||
self.queue = queue
|
self.queue = queue
|
||||||
self.postbox = postbox
|
self.postbox = postbox
|
||||||
}
|
}
|
||||||
@@ -86,12 +86,14 @@ final class NetworkStatsContext {
|
|||||||
var removeKeys: [TargetKey] = []
|
var removeKeys: [TargetKey] = []
|
||||||
for (targetKey, averageStats) in self.averageTargetStats {
|
for (targetKey, averageStats) in self.averageTargetStats {
|
||||||
if averageStats.count >= 1000 || averageStats.size >= 4 * 1024 * 1024 {
|
if averageStats.count >= 1000 || averageStats.size >= 4 * 1024 * 1024 {
|
||||||
addAppLogEvent(postbox: self.postbox, type: "download", data: .dictionary([
|
if let postbox = self.postbox {
|
||||||
"n": .number(Double(targetKey.networkType.rawValue)),
|
addAppLogEvent(postbox: postbox, type: "download", data: .dictionary([
|
||||||
"d": .number(Double(targetKey.datacenterId)),
|
"n": .number(Double(targetKey.networkType.rawValue)),
|
||||||
"b": .number(averageStats.networkBps / Double(averageStats.count)),
|
"d": .number(Double(targetKey.datacenterId)),
|
||||||
"nd": .number(averageStats.networkDelay / Double(averageStats.count))
|
"b": .number(averageStats.networkBps / Double(averageStats.count)),
|
||||||
]))
|
"nd": .number(averageStats.networkDelay / Double(averageStats.count))
|
||||||
|
]))
|
||||||
|
}
|
||||||
removeKeys.append(targetKey)
|
removeKeys.append(targetKey)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -109,7 +111,7 @@ final class NetworkStatsContext {
|
|||||||
init(postbox: Postbox) {
|
init(postbox: Postbox) {
|
||||||
let queue = NetworkStatsContext.sharedQueue
|
let queue = NetworkStatsContext.sharedQueue
|
||||||
self.queue = queue
|
self.queue = queue
|
||||||
self.impl = QueueLocalObject(queue: queue, generate: {
|
self.impl = QueueLocalObject(queue: queue, generate: { [weak postbox] in
|
||||||
return Impl(queue: queue, postbox: postbox)
|
return Impl(queue: queue, postbox: postbox)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user