summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorder richter <der.richter@gmx.de>2019-12-15 13:01:32 +0100
committerder richter <der.richter@gmx.de>2019-12-15 20:07:11 +0100
commit1eb6cbd093481517e37b40aec174fc6f4e553bcd (patch)
treee9110f293737e606b06483e8f8aa25040570052f
parentf21a980e374b46c978cec0d99145777653f4caca (diff)
downloadmpv-1eb6cbd093481517e37b40aec174fc6f4e553bcd.tar.bz2
mpv-1eb6cbd093481517e37b40aec174fc6f4e553bcd.tar.xz
cocoa-cb: fix freeing of macos_opts config group
using the MPContext as ta parent was a bad idea and shouldn't be done in any circumstances there because it only supposed to be for internal usage. this had the undesired effect that the options group was freed but still used since the MPContext is freed afterwards. instead manually free options group.
-rw-r--r--osdep/macos/libmpv_helper.swift10
1 files changed, 5 insertions, 5 deletions
diff --git a/osdep/macos/libmpv_helper.swift b/osdep/macos/libmpv_helper.swift
index bf069efc6b..5f465370dd 100644
--- a/osdep/macos/libmpv_helper.swift
+++ b/osdep/macos/libmpv_helper.swift
@@ -25,6 +25,7 @@ class LibmpvHelper: LogHelper {
var mpvHandle: OpaquePointer?
var mpvRenderContext: OpaquePointer?
+ var macOptsPtr: UnsafeMutableRawPointer?
var macOpts: macos_opts = macos_opts()
var fbo: GLint = 1
let deinitLock = NSLock()
@@ -34,18 +35,15 @@ class LibmpvHelper: LogHelper {
super.init(newlog)
mpvHandle = mpv
- guard let mpctx = UnsafeMutablePointer<MPContext>(mp_client_get_core(mpvHandle)) else {
- sendError("No MPContext available")
- exit(1)
- }
guard let app = NSApp as? Application,
- let ptr = mp_get_config_group(mpctx,
+ let ptr = mp_get_config_group(nil,
mp_client_get_global(mpvHandle),
app.getMacOSConf()) else
{
sendError("macOS config group couldn't be retrieved'")
exit(1)
}
+ macOptsPtr = ptr
macOpts = UnsafeMutablePointer<macos_opts>(OpaquePointer(ptr)).pointee
}
@@ -234,6 +232,8 @@ class LibmpvHelper: LogHelper {
if destroy {
mpv_destroy(mpvHandle)
}
+ ta_free(macOptsPtr)
+ macOptsPtr = nil
mpvHandle = nil
log = nil
}