From bb7d6621fd62e2b5e9e761cdfdd5b07a84eed237 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 17 Apr 2004 03:26:46 +0000 Subject: [PATCH] gst/gstelement.c: simplify Original commit message from CVS: * gst/gstelement.c: (gst_element_dispose): simplify * gst/gstpad.c: (gst_pad_call_chain_function): don't create loads of events due to bad macro usage --- ChangeLog | 7 +++++++ gst/gstelement.c | 23 ++--------------------- gst/gstpad.c | 7 ++++--- 3 files changed, 13 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9caa071e17..dab05f67cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2004-04-17 Benjamin Otte + + * gst/gstelement.c: (gst_element_dispose): + simplify + * gst/gstpad.c: (gst_pad_call_chain_function): + don't create loads of events due to bad macro usage + 2004-04-16 David Schleef * gst/gstcaps.c: (gst_caps_is_fixed_foreach): diff --git a/gst/gstelement.c b/gst/gstelement.c index 9fb6ecffa3..70fa4a469a 100644 --- a/gst/gstelement.c +++ b/gst/gstelement.c @@ -2974,33 +2974,14 @@ static void gst_element_dispose (GObject * object) { GstElement *element = GST_ELEMENT (object); - GList *pads; - GstPad *pad; GST_CAT_INFO_OBJECT (GST_CAT_REFCOUNTING, element, "dispose"); gst_element_set_state (element, GST_STATE_NULL); /* first we break all our links with the ouside */ - if (element->pads) { - GList *orig; - - orig = pads = g_list_copy (element->pads); - while (pads) { - pad = GST_PAD (pads->data); - - if (GST_PAD_PEER (pad)) { - GST_CAT_DEBUG (GST_CAT_REFCOUNTING, "unlinking pad '%s'", - GST_OBJECT_NAME (GST_OBJECT (GST_PAD (GST_PAD_PEER (pad))))); - gst_pad_unlink (pad, GST_PAD (GST_PAD_PEER (pad))); - } - gst_element_remove_pad (element, pad); - - pads = g_list_next (pads); - } - g_list_free (orig); - g_list_free (element->pads); - element->pads = NULL; + while (element->pads) { + gst_element_remove_pad (element, GST_PAD (element->pads->data)); } element->numsrcpads = 0; diff --git a/gst/gstpad.c b/gst/gstpad.c index 017490f473..d4987c4b5d 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -4212,11 +4212,12 @@ gst_pad_get_formats (GstPad * pad) } #define CALL_CHAINFUNC(pad, data) G_STMT_START {\ - if (GST_IS_EVENT (data) && \ + GstData *__temp = (data); \ + if (GST_IS_EVENT (__temp) && \ !GST_FLAG_IS_SET (gst_pad_get_parent (pad), GST_ELEMENT_EVENT_AWARE)) { \ - gst_pad_send_event (pad, GST_EVENT (data)); \ + gst_pad_send_event (pad, GST_EVENT (__temp)); \ } else { \ - GST_RPAD_CHAINFUNC (pad) (pad, data); \ + GST_RPAD_CHAINFUNC (pad) (pad, __temp); \ } \ }G_STMT_END /**