pad: Return FALSE if pushing of sticky events failed
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Sat, 2 Jun 2012 14:02:07 +0000 (16:02 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Sat, 2 Jun 2012 14:02:07 +0000 (16:02 +0200)
Instead of just ignoring failure of pushing sticky events and
returning TRUE as if everything is fine.

gst/gstpad.c

index 0464209..aabe489 100644 (file)
@@ -4406,7 +4406,7 @@ idle_probe_stopped:
 gboolean
 gst_pad_push_event (GstPad * pad, GstEvent * event)
 {
-  gboolean res;
+  gboolean res = TRUE;
   GstPadProbeType type;
   gboolean sticky, serialized;
 
@@ -4446,12 +4446,13 @@ gst_pad_push_event (GstPad * pad, GstEvent * event)
      * sticky events */
     res = (check_sticky (pad) == GST_FLOW_OK);
   }
-  if (!sticky) {
-    /* other events are pushed right away */
+
+  /* If pushing sticky events did not fail and this is no sticky event
+   * push it right away */
+  if (res && !sticky) {
     res = (gst_pad_push_event_unchecked (pad, event, type) == GST_FLOW_OK);
   } else {
     gst_event_unref (event);
-    res = TRUE;
   }
   GST_OBJECT_UNLOCK (pad);