bin: Only unref EOS message after it is not used anymore
authorAurelien Grimaud <gstelzz@yahoo.fr>
Fri, 4 Sep 2009 07:51:26 +0000 (09:51 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 4 Sep 2009 07:52:39 +0000 (09:52 +0200)
Fixes bug #594107.

gst/gstbin.c

index 4e07f3c..660cafa 100644 (file)
@@ -2982,6 +2982,8 @@ gst_bin_handle_message_func (GstBin * bin, GstMessage * message)
 
       /* collect all eos messages from the children */
       GST_OBJECT_LOCK (bin);
+      /* ref message for future use  */
+      gst_message_ref (message);
       bin_replace_message (bin, message, GST_MESSAGE_EOS);
       eos = is_eos (bin);
       GST_OBJECT_UNLOCK (bin);
@@ -2996,6 +2998,7 @@ gst_bin_handle_message_func (GstBin * bin, GstMessage * message)
             "all sinks posted EOS, posting seqnum #%" G_GUINT32_FORMAT, seqnum);
         gst_element_post_message (GST_ELEMENT_CAST (bin), tmessage);
       }
+      gst_message_unref (message);
       break;
     }
     case GST_MESSAGE_STATE_DIRTY: