0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 03:52:22 +02:00

cocoa: don't send messages to uninitialized gl contexts

This should fix some crashes where we sent makeCurrentContext to a context that
was being freed from another thread.

/cc @mpv-player/stable
This commit is contained in:
Stefano Pigozzi 2014-07-19 11:56:36 +02:00
parent 1942e424e3
commit c76958d20c

View File

@ -345,6 +345,9 @@ static void vo_cocoa_resize_redraw(struct vo *vo, int width, int height)
if (!s->resize_redraw)
return;
if (!s->gl_ctx)
return;
vo_cocoa_set_current_context(vo, true);
[s->gl_ctx update];
@ -400,6 +403,7 @@ void vo_cocoa_release_nsgl_ctx(struct vo *vo)
{
struct vo_cocoa_state *s = vo->cocoa;
[s->gl_ctx release];
s->gl_ctx = nil;
}
int vo_cocoa_config_window(struct vo *vo, uint32_t flags, void *gl_ctx)
@ -454,7 +458,8 @@ void vo_cocoa_set_current_context(struct vo *vo, bool current)
if (!s->inside_sync_section)
[s->lock lock];
[s->gl_ctx makeCurrentContext];
if (s->gl_ctx)
[s->gl_ctx makeCurrentContext];
} else {
[NSOpenGLContext clearCurrentContext];