Skip to content

Commit b45fa6c

Browse files
committed
fix memory leaks
1 parent 56faf8b commit b45fa6c

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

TestApp/Sources/SessionReplay/Masking/DialogsUIKitView.swift

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,11 @@ final class DialogsUIKitViewController: UIViewController {
152152
timerVC.view.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]
153153
timerVC.view.clipsToBounds = true
154154

155-
let cleanup: () -> Void = {
156-
timerVC.willMove(toParent: nil)
157-
timerVC.view.removeFromSuperview()
158-
timerVC.removeFromParent()
159-
dimView.removeFromSuperview()
155+
let cleanup: () -> Void = { [weak timerVC, weak dimView] in
156+
timerVC?.willMove(toParent: nil)
157+
timerVC?.view.removeFromSuperview()
158+
timerVC?.removeFromParent()
159+
dimView?.removeFromSuperview()
160160
}
161161

162162
timerVC.onComplete = cleanup
@@ -197,15 +197,19 @@ final class DialogsUIKitViewController: UIViewController {
197197
timerVC.view.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]
198198
timerVC.view.clipsToBounds = true
199199

200-
let cleanup: () -> Void = {
201-
timerVC.view.removeFromSuperview()
202-
dimView.removeFromSuperview()
200+
let cleanup: () -> Void = { [weak timerVC, weak dimView] in
201+
timerVC?.willMove(toParent: nil)
202+
timerVC?.view.removeFromSuperview()
203+
timerVC?.removeFromParent()
204+
dimView?.removeFromSuperview()
203205
}
204206

205207
timerVC.onComplete = cleanup
206208
dimView.onTap = cleanup
207209

210+
addChild(timerVC)
208211
dimView.addSubview(timerVC.view)
212+
timerVC.didMove(toParent: self)
209213

210214
let visibleX = -oversizedFrame.origin.x
211215
let visibleY = -oversizedFrame.origin.y
@@ -276,11 +280,11 @@ final class DialogsUIKitViewController: UIViewController {
276280
timerVC.view.layer.cornerRadius = 16
277281
timerVC.view.clipsToBounds = true
278282

279-
let cleanup: () -> Void = {
280-
timerVC.willMove(toParent: nil)
281-
timerVC.view.removeFromSuperview()
282-
timerVC.removeFromParent()
283-
dimView.removeFromSuperview()
283+
let cleanup: () -> Void = { [weak timerVC, weak dimView] in
284+
timerVC?.willMove(toParent: nil)
285+
timerVC?.view.removeFromSuperview()
286+
timerVC?.removeFromParent()
287+
dimView?.removeFromSuperview()
284288
}
285289

286290
timerVC.onComplete = cleanup

0 commit comments

Comments
 (0)