From 51a52a4800efc5c7721b6e1bc926393b481258c5 Mon Sep 17 00:00:00 2001 From: samdogg7 Date: Thu, 22 May 2025 08:34:07 -0400 Subject: [PATCH] Issue-94 Resolved memory leak by adding weak to parent CameraManager --- Sources/Internal/Manager/CameraManager+MotionManager.swift | 2 +- Sources/Internal/Manager/CameraManager+NotificationCenter.swift | 2 +- Sources/Internal/Manager/CameraManager+PhotoOutput.swift | 2 +- Sources/Internal/Manager/CameraManager+VideoOutput.swift | 2 +- Sources/Internal/UI/Camera View/CameraView+Grid.swift | 2 +- Sources/Internal/UI/Camera View/CameraView+Metal.swift | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Sources/Internal/Manager/CameraManager+MotionManager.swift b/Sources/Internal/Manager/CameraManager+MotionManager.swift index a1faaf9d2..607b51852 100644 --- a/Sources/Internal/Manager/CameraManager+MotionManager.swift +++ b/Sources/Internal/Manager/CameraManager+MotionManager.swift @@ -13,7 +13,7 @@ import CoreMotion import AVKit @MainActor class CameraManagerMotionManager { - private(set) var parent: CameraManager! + private(set) weak var parent: CameraManager! private(set) var manager: CMMotionManager = .init() } diff --git a/Sources/Internal/Manager/CameraManager+NotificationCenter.swift b/Sources/Internal/Manager/CameraManager+NotificationCenter.swift index 4f9aebe02..320c12350 100644 --- a/Sources/Internal/Manager/CameraManager+NotificationCenter.swift +++ b/Sources/Internal/Manager/CameraManager+NotificationCenter.swift @@ -12,7 +12,7 @@ import Foundation @MainActor class CameraManagerNotificationCenter { - private(set) var parent: CameraManager! + private(set) weak var parent: CameraManager! } // MARK: Setup diff --git a/Sources/Internal/Manager/CameraManager+PhotoOutput.swift b/Sources/Internal/Manager/CameraManager+PhotoOutput.swift index 107413496..b096c3564 100644 --- a/Sources/Internal/Manager/CameraManager+PhotoOutput.swift +++ b/Sources/Internal/Manager/CameraManager+PhotoOutput.swift @@ -12,7 +12,7 @@ import AVKit @MainActor class CameraManagerPhotoOutput: NSObject { - private(set) var parent: CameraManager! + private(set) weak var parent: CameraManager! private(set) var output: AVCapturePhotoOutput = .init() } diff --git a/Sources/Internal/Manager/CameraManager+VideoOutput.swift b/Sources/Internal/Manager/CameraManager+VideoOutput.swift index b5cb37a71..891bb75a5 100644 --- a/Sources/Internal/Manager/CameraManager+VideoOutput.swift +++ b/Sources/Internal/Manager/CameraManager+VideoOutput.swift @@ -14,7 +14,7 @@ import SwiftUI import MijickTimer @MainActor class CameraManagerVideoOutput: NSObject { - private(set) var parent: CameraManager! + private(set) weak var parent: CameraManager! private(set) var output: AVCaptureMovieFileOutput = .init() private(set) var timer: MTimer = .init(.camera) private(set) var recordingTime: MTime = .zero diff --git a/Sources/Internal/UI/Camera View/CameraView+Grid.swift b/Sources/Internal/UI/Camera View/CameraView+Grid.swift index 2648d79b9..88e03bc98 100644 --- a/Sources/Internal/UI/Camera View/CameraView+Grid.swift +++ b/Sources/Internal/UI/Camera View/CameraView+Grid.swift @@ -12,7 +12,7 @@ import SwiftUI class CameraGridView: UIView { - var parent: CameraManager! + weak var parent: CameraManager! } // MARK: Setup diff --git a/Sources/Internal/UI/Camera View/CameraView+Metal.swift b/Sources/Internal/UI/Camera View/CameraView+Metal.swift index 2741a24d7..92338dedd 100644 --- a/Sources/Internal/UI/Camera View/CameraView+Metal.swift +++ b/Sources/Internal/UI/Camera View/CameraView+Metal.swift @@ -14,7 +14,7 @@ import MetalKit import AVKit @MainActor class CameraMetalView: MTKView { - private(set) var parent: CameraManager! + private(set) weak var parent: CameraManager! private(set) var ciContext: CIContext! private(set) var commandQueue: MTLCommandQueue! private(set) var currentFrame: CIImage?