Check that collectpads exists before removing pad

The core now calls release pad from finalize, at which point
the collectpads might have already been freed.
This commit is contained in:
David Schleef 2011-02-20 23:57:19 -08:00
parent cad8a864ff
commit 6d8740476c
3 changed files with 10 additions and 3 deletions

View file

@ -588,7 +588,9 @@ mpegpsmux_release_pad (GstElement * element, GstPad * pad)
} }
GST_OBJECT_UNLOCK (pad); GST_OBJECT_UNLOCK (pad);
gst_collect_pads_remove_pad (mux->collect, pad); if (mux->collect) {
gst_collect_pads_remove_pad (mux->collect, pad);
}
} }
static gboolean static gboolean

View file

@ -503,6 +503,7 @@ gst_qt_mux_finalize (GObject * object)
atoms_context_free (qtmux->context); atoms_context_free (qtmux->context);
gst_object_unref (qtmux->collect); gst_object_unref (qtmux->collect);
qtmux->collect = NULL;
g_slist_free (qtmux->sinkpads); g_slist_free (qtmux->sinkpads);
@ -3165,7 +3166,9 @@ gst_qt_mux_release_pad (GstElement * element, GstPad * pad)
} }
} }
gst_collect_pads_remove_pad (mux->collect, pad); if (mux->collect) {
gst_collect_pads_remove_pad (mux->collect, pad);
}
} }
static GstPad * static GstPad *

View file

@ -1253,7 +1253,9 @@ gst_ssim_release_pad (GstElement * element, GstPad * pad)
GST_DEBUG_OBJECT (ssim, "release pad %s:%s", GST_DEBUG_PAD_NAME (pad)); GST_DEBUG_OBJECT (ssim, "release pad %s:%s", GST_DEBUG_PAD_NAME (pad));
gst_collect_pads_remove_pad (ssim->collect, pad); if (ssim->collect) {
gst_collect_pads_remove_pad (ssim->collect, pad);
}
gst_element_remove_pad (element, pad); gst_element_remove_pad (element, pad);
} }