diff options
author | der richter <der.richter@gmx.de> | 2020-07-26 13:34:34 +0200 |
---|---|---|
committer | der richter <der.richter@gmx.de> | 2020-08-22 14:22:49 +0200 |
commit | fa982a7cbe8253cddcc76388baf5af409cc4aa9a (patch) | |
tree | 1f2932a797a925192ed4964997ec5116732d8ff3 | |
parent | f79a591ae471c4da6fbb40c1da4bc4220f90aba4 (diff) | |
download | mpv-fa982a7cbe8253cddcc76388baf5af409cc4aa9a.tar.bz2 mpv-fa982a7cbe8253cddcc76388baf5af409cc4aa9a.tar.xz |
mac: properly guard and unwrap an optional value
i don't know what i was thinking there, but force unwrapping is a very
bad idea.
-rw-r--r-- | video/out/mac/common.swift | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/video/out/mac/common.swift b/video/out/mac/common.swift index b4aa105b23..49e3835e10 100644 --- a/video/out/mac/common.swift +++ b/video/out/mac/common.swift @@ -437,34 +437,38 @@ class Common: NSObject { events.pointee |= Int32(checkEvents()) return VO_TRUE case VOCTRL_VO_OPTS_CHANGED: - var opt: UnsafeMutableRawPointer? - while mpv.nextChangedConfig(property: &opt) { - if opt! == UnsafeMutableRawPointer(&mpv.optsPtr.pointee.border) { + var o: UnsafeMutableRawPointer? + while mpv.nextChangedConfig(property: &o) { + guard let opt = o else { + log.sendError("No changed options was retrieved") + return VO_TRUE + } + if opt == UnsafeMutableRawPointer(&mpv.optsPtr.pointee.border) { DispatchQueue.main.async { self.window?.border = Bool(mpv.opts.border) } } - if opt! == UnsafeMutableRawPointer(&mpv.optsPtr.pointee.fullscreen) { + if opt == UnsafeMutableRawPointer(&mpv.optsPtr.pointee.fullscreen) { DispatchQueue.main.async { self.window?.toggleFullScreen(nil) } } - if opt! == UnsafeMutableRawPointer(&mpv.optsPtr.pointee.ontop) { + if opt == UnsafeMutableRawPointer(&mpv.optsPtr.pointee.ontop) { DispatchQueue.main.async { self.window?.setOnTop(Bool(mpv.opts.ontop), Int(mpv.opts.ontop_level)) } } - if opt! == UnsafeMutableRawPointer(&mpv.optsPtr.pointee.keepaspect_window) { + if opt == UnsafeMutableRawPointer(&mpv.optsPtr.pointee.keepaspect_window) { DispatchQueue.main.async { self.window?.keepAspect = Bool(mpv.opts.keepaspect_window) } } - if opt! == UnsafeMutableRawPointer(&mpv.optsPtr.pointee.window_minimized) { + if opt == UnsafeMutableRawPointer(&mpv.optsPtr.pointee.window_minimized) { DispatchQueue.main.async { self.window?.setMinimized(Bool(mpv.opts.window_minimized)) } } - if opt! == UnsafeMutableRawPointer(&mpv.optsPtr.pointee.window_maximized) { + if opt == UnsafeMutableRawPointer(&mpv.optsPtr.pointee.window_maximized) { DispatchQueue.main.async { self.window?.setMaximized(Bool(mpv.opts.window_maximized)) } |