Use macros to register boxed types thread safely

This commit is contained in:
Olivier Crête 2012-01-28 14:53:21 +00:00
parent cb044668d3
commit e391118125
3 changed files with 7 additions and 26 deletions

View file

@ -465,18 +465,9 @@ gst_install_plugins_context_copy (GstInstallPluginsContext * ctx)
return ret; return ret;
} }
GType G_DEFINE_BOXED_TYPE (GstInstallPluginsContext, gst_install_plugins_context,
gst_install_plugins_context_get_type (void) (GBoxedCopyFunc) gst_install_plugins_context_copy,
{ (GBoxedFreeFunc) gst_install_plugins_context_free);
static GType gst_ipc_type = 0;
if (G_UNLIKELY (gst_ipc_type == 0)) {
gst_ipc_type = g_boxed_type_register_static ("GstInstallPluginsContext",
(GBoxedCopyFunc) gst_install_plugins_context_copy,
(GBoxedFreeFunc) gst_install_plugins_context_free);
}
return gst_ipc_type;
}
static const gchar * static const gchar *
gst_install_plugins_get_helper (void) gst_install_plugins_get_helper (void)

View file

@ -54,19 +54,8 @@
#include "gstrtspurl.h" #include "gstrtspurl.h"
GType G_DEFINE_BOXED_TYPE (GstRTSPUrl, gst_rtsp_url,
gst_rtsp_url_get_type (void) (GBoxedCopyFunc) gst_rtsp_url_copy, (GBoxedFreeFunc) gst_rtsp_url_free);
{
static volatile gsize url_type = 0;
if (g_once_init_enter (&url_type)) {
GType tmp = g_boxed_type_register_static ("GstRTSPUrl",
(GBoxedCopyFunc) gst_rtsp_url_copy, (GBoxedFreeFunc) gst_rtsp_url_free);
g_once_init_leave (&url_type, tmp);
}
return (GType) url_type;
}
static const struct static const struct
{ {

View file

@ -1028,7 +1028,8 @@ gst_adder_release_pad (GstElement * element, GstPad * pad)
GST_DEBUG_OBJECT (adder, "release pad %s:%s", GST_DEBUG_PAD_NAME (pad)); GST_DEBUG_OBJECT (adder, "release pad %s:%s", GST_DEBUG_PAD_NAME (pad));
gst_collect_pads2_remove_pad (adder->collect, pad); if (adder->collect)
gst_collect_pads2_remove_pad (adder->collect, pad);
gst_element_remove_pad (element, pad); gst_element_remove_pad (element, pad);
} }