gtk: Do not forget to release OBJECT_LOCK on error path

https://bugzilla.gnome.org/show_bug.cgi?id=755542
This commit is contained in:
Thibault Saunier 2015-09-24 15:51:28 +02:00
parent 01057609f1
commit bdcb8208eb

View file

@ -347,7 +347,7 @@ gst_gtk_base_sink_stop (GstBaseSink * bsink)
} }
static void static void
gst_gtk_widget_show_all_and_unref (GtkWidget *widget) gst_gtk_widget_show_all_and_unref (GtkWidget * widget)
{ {
gtk_widget_show_all (widget); gtk_widget_show_all (widget);
g_object_unref (widget); g_object_unref (widget);
@ -378,7 +378,8 @@ gst_gtk_base_sink_change_state (GstElement * element, GstStateChange transition)
GST_OBJECT_UNLOCK (gtk_sink); GST_OBJECT_UNLOCK (gtk_sink);
if (window) if (window)
gst_gtk_invoke_on_main ((GThreadFunc) gst_gtk_widget_show_all_and_unref, window); gst_gtk_invoke_on_main ((GThreadFunc) gst_gtk_widget_show_all_and_unref,
window);
break; break;
} }
@ -437,9 +438,10 @@ gst_gtk_base_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
return FALSE; return FALSE;
} }
if (!gtk_gst_base_widget_set_format (gtk_sink->widget, &gtk_sink->v_info)) if (!gtk_gst_base_widget_set_format (gtk_sink->widget, &gtk_sink->v_info)) {
GST_OBJECT_UNLOCK (gtk_sink);
return FALSE; return FALSE;
}
GST_OBJECT_UNLOCK (gtk_sink); GST_OBJECT_UNLOCK (gtk_sink);
return TRUE; return TRUE;