summaryrefslogtreecommitdiff
path: root/gst/gstpad.c
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2011-11-23 08:17:36 +0100
committerWim Taymans <wim.taymans@collabora.co.uk>2011-11-23 08:17:36 +0100
commit31b79556b8140a44b575e754dd145d8ab655e25a (patch)
treea668c0f62d89e7604ab6aaa40151a1ff9b344efd /gst/gstpad.c
parentdd65aae9a177f7b11dcef0f690a78d698f667cd4 (diff)
downloadgstreamer-31b79556b8140a44b575e754dd145d8ab655e25a.tar.gz
pad: take peerpad correctly
Don't take the peerpad too early, it might change because of the probes.
Diffstat (limited to 'gst/gstpad.c')
-rw-r--r--gst/gstpad.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/gst/gstpad.c b/gst/gstpad.c
index 79b454c025..7c6b172f3b 100644
--- a/gst/gstpad.c
+++ b/gst/gstpad.c
@@ -3869,7 +3869,6 @@ gst_pad_push_event (GstPad * pad, GstEvent * event)
goto unknown_direction;
GST_OBJECT_LOCK (pad);
- peerpad = GST_PAD_PEER (pad);
/* Two checks to be made:
* . (un)set the FLUSHING flag for flushing events,
@@ -3916,9 +3915,6 @@ gst_pad_push_event (GstPad * pad, GstEvent * event)
GST_EVENT_TYPE_NAME (event));
pad->priv->events[idx].received = FALSE;
}
- /* the peerpad might have changed. Things we checked above could not
- * have changed. */
- peerpad = GST_PAD_PEER (pad);
stored = TRUE;
}
@@ -3945,6 +3941,7 @@ gst_pad_push_event (GstPad * pad, GstEvent * event)
PROBE_PUSH (pad, type | GST_PAD_PROBE_TYPE_PUSH, event, probe_stopped);
/* now check the peer pad */
+ peerpad = GST_PAD_PEER (pad);
if (peerpad == NULL)
goto not_linked;