diff --git a/osdep/mac/app_hub.swift b/osdep/mac/app_hub.swift index e86e707dd3..997cc33847 100644 --- a/osdep/mac/app_hub.swift +++ b/osdep/mac/app_hub.swift @@ -55,7 +55,7 @@ class AppHub: NSObject { event = EventHelper(self, mpv) if let mpv = event?.mpv { self.mpv = mpv - log.log = mp_log_new(UnsafeMutablePointer(mpv), mp_client_get_log(mpv), "app") + log.log = mp_log_new(nil, mp_client_get_log(mpv), "app") option = OptionHelper(UnsafeMutablePointer(mpv), mp_client_get_global(mpv)) input.option = option } diff --git a/osdep/mac/log_helper.swift b/osdep/mac/log_helper.swift index 0f65975da1..3d349a487c 100644 --- a/osdep/mac/log_helper.swift +++ b/osdep/mac/log_helper.swift @@ -50,7 +50,7 @@ class LogHelper { } func send(message: String, type: Int) { - guard let log = log, UnsafeRawPointer(log).load(as: UInt8.self) != 0 else { + guard let log = log else { logger.log(level: loggerMapping[type] ?? .default, "\(message, privacy: .public)") return } @@ -58,4 +58,10 @@ class LogHelper { let args: [CVarArg] = [(message as NSString).utf8String ?? "NO MESSAGE"] mp_msg_va(log, Int32(type), "%s\n", getVaList(args)) } + + deinit { + // only a manual dereferencing will trigger this, cleanup properly in that case + ta_free(UnsafeMutablePointer(log)) + log = nil + } }