glimagesink: Guard against disconnecting invalid signal ids
authorSebastian Dröge <sebastian@centricular.com>
Tue, 7 Apr 2015 03:24:06 +0000 (20:24 -0700)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:31:58 +0000 (19:31 +0000)
ext/gl/gstglimagesink.c

index f4187e9..e03f707 100644 (file)
@@ -1580,8 +1580,12 @@ gst_glimage_sink_on_close (GstGLImageSink * gl_sink)
 
   window = gst_gl_context_get_window (gl_sink->context);
 
-  g_signal_handler_disconnect (window, gl_sink->key_sig_id);
-  g_signal_handler_disconnect (window, gl_sink->mouse_sig_id);
+  if (gl_sink->key_sig_id)
+    g_signal_handler_disconnect (window, gl_sink->key_sig_id);
+  gl_sink->key_sig_id = 0;
+  if (gl_sink->mouse_sig_id)
+    g_signal_handler_disconnect (window, gl_sink->mouse_sig_id);
+  gl_sink->mouse_sig_id = 0;
 
   g_atomic_int_set (&gl_sink->to_quit, 1);