Skip to content

Commit e04d865

Browse files
authored
Merge pull request #2419 from darkbrewx/fix/network-metrics-sessiontask-retain-cycle
Fix retain cycle in ImageDownloader when transferring network metrics
2 parents 24724dc + 044cf56 commit e04d865

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

Sources/Networking/ImageDownloader.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ open class ImageDownloader: @unchecked Sendable {
427427
return downloadTask
428428
}
429429

430-
sessionTask.onTaskDone.delegate(on: self) { (self, done) in
430+
sessionTask.onTaskDone.delegate(on: self) { [weak sessionTask] (self, done) in
431431
// Underlying downloading finishes.
432432
// result: Result<(Data, URLResponse?)>, callbacks: [TaskCallback]
433433
let (result, callbacks) = done
@@ -449,7 +449,7 @@ open class ImageDownloader: @unchecked Sendable {
449449

450450
self.reportDidProcessImage(result: result, url: context.url, response: response)
451451

452-
let imageResult = result.map { ImageLoadingResult(image: $0, url: context.url, originalData: data, metrics: sessionTask.metrics) }
452+
let imageResult = result.map { ImageLoadingResult(image: $0, url: context.url, originalData: data, metrics: sessionTask?.metrics) }
453453
let queue = callback.options.callbackQueue
454454
queue.execute { callback.onCompleted?.call(imageResult) }
455455
}

0 commit comments

Comments
 (0)