# HG changeset patch # User Sean Egan # Date 1187829837 0 # Node ID 630938110521df120851c8312f2fb71dbb1a71f7 # Parent bd18c02bba9f9e8d38d2a3145ec7850a00d9ffc2 Cleanup playbin on error. Thanks, Elliott Sales de Andrade. Fixes #2663 diff -r bd18c02bba9f -r 630938110521 finch/gntsound.c --- a/finch/gntsound.c Wed Aug 22 23:27:38 2007 +0000 +++ b/finch/gntsound.c Thu Aug 23 00:43:57 2007 +0000 @@ -409,14 +409,14 @@ GError *err = NULL; switch (GST_MESSAGE_TYPE (msg)) { - case GST_MESSAGE_EOS: - gst_element_set_state(play, GST_STATE_NULL); - gst_object_unref(GST_OBJECT(play)); - break; case GST_MESSAGE_ERROR: gst_message_parse_error(msg, &err, NULL); purple_debug_error("gstreamer", "%s\n", err->message); g_error_free(err); + /* fall-through and clean up */ + case GST_MESSAGE_EOS: + gst_element_set_state(play, GST_STATE_NULL); + gst_object_unref(GST_OBJECT(play)); break; case GST_MESSAGE_WARNING: gst_message_parse_warning(msg, &err, NULL); diff -r bd18c02bba9f -r 630938110521 pidgin/gtksound.c --- a/pidgin/gtksound.c Wed Aug 22 23:27:38 2007 +0000 +++ b/pidgin/gtksound.c Thu Aug 23 00:43:57 2007 +0000 @@ -364,14 +364,14 @@ GError *err = NULL; switch (GST_MESSAGE_TYPE (msg)) { - case GST_MESSAGE_EOS: - gst_element_set_state(play, GST_STATE_NULL); - gst_object_unref(GST_OBJECT(play)); - break; case GST_MESSAGE_ERROR: gst_message_parse_error(msg, &err, NULL); purple_debug_error("gstreamer", "%s\n", err->message); g_error_free(err); + /* fall-through and clean up */ + case GST_MESSAGE_EOS: + gst_element_set_state(play, GST_STATE_NULL); + gst_object_unref(GST_OBJECT(play)); break; case GST_MESSAGE_WARNING: gst_message_parse_warning(msg, &err, NULL);