Skip to content

Commit 150b709

Browse files
authored
Fix retain cycle in LLBuildProgressTracker (#8305)
`self.taskTracker.onTaskProgressUpdateText` captured `self` strongly, creating a reference cycle in `LLBuildProgressTracker`, which caused it to never get deallocated.
1 parent 11ca6b9 commit 150b709

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

Sources/Build/LLBuildProgressTracker.swift

+4-2
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,10 @@ final class LLBuildProgressTracker: LLBuildBuildSystemDelegate, SwiftCompilerOut
180180
} ?? [:]
181181
self.swiftParsers = swiftParsers
182182

183-
self.taskTracker.onTaskProgressUpdateText = { progressText, _ in
184-
self.queue.async {
183+
self.taskTracker.onTaskProgressUpdateText = { [weak self] progressText, _ in
184+
guard let self else { return }
185+
self.queue.async { [weak self] in
186+
guard let self else { return }
185187
self.delegate?.buildSystem(self.buildSystem, didUpdateTaskProgress: progressText)
186188
}
187189
}

0 commit comments

Comments
 (0)