controller, dataprotocol: make public enum _get_type() functions thread-safe

Not that it is likely to matter in practice, but since these are public
API they should probably be thread-safe.
This commit is contained in:
Tim-Philipp Müller 2010-10-08 09:34:47 +01:00
parent c7e3bab65d
commit 9bd4432d08
2 changed files with 25 additions and 23 deletions

View file

@ -580,26 +580,27 @@ enum
GType GType
gst_lfo_waveform_get_type (void) gst_lfo_waveform_get_type (void)
{ {
static GType gtype = 0; static gsize gtype = 0;
static const GEnumValue values[] = {
{GST_LFO_WAVEFORM_SINE, "GST_LFO_WAVEFORM_SINE",
"sine"},
{GST_LFO_WAVEFORM_SQUARE, "GST_LFO_WAVEFORM_SQUARE",
"square"},
{GST_LFO_WAVEFORM_SAW, "GST_LFO_WAVEFORM_SAW",
"saw"},
{GST_LFO_WAVEFORM_REVERSE_SAW, "GST_LFO_WAVEFORM_REVERSE_SAW",
"reverse-saw"},
{GST_LFO_WAVEFORM_TRIANGLE, "GST_LFO_WAVEFORM_TRIANGLE",
"triangle"},
{0, NULL, NULL}
};
if (gtype == 0) { if (g_once_init_enter (&gtype)) {
static const GEnumValue values[] = { GType tmp = g_enum_register_static ("GstLFOWaveform", values);
{GST_LFO_WAVEFORM_SINE, "GST_LFO_WAVEFORM_SINE", g_once_init_leave (&gtype, tmp);
"sine"},
{GST_LFO_WAVEFORM_SQUARE, "GST_LFO_WAVEFORM_SQUARE",
"square"},
{GST_LFO_WAVEFORM_SAW, "GST_LFO_WAVEFORM_SAW",
"saw"},
{GST_LFO_WAVEFORM_REVERSE_SAW, "GST_LFO_WAVEFORM_REVERSE_SAW",
"reverse-saw"},
{GST_LFO_WAVEFORM_TRIANGLE, "GST_LFO_WAVEFORM_TRIANGLE",
"triangle"},
{0, NULL, NULL}
};
gtype = g_enum_register_static ("GstLFOWaveform", values);
} }
return gtype;
return (GType) gtype;
} }
G_DEFINE_TYPE (GstLFOControlSource, gst_lfo_control_source, G_DEFINE_TYPE (GstLFOControlSource, gst_lfo_control_source,

View file

@ -292,18 +292,19 @@ gst_dp_dump_byte_array (guint8 * array, guint length)
GType GType
gst_dp_version_get_type (void) gst_dp_version_get_type (void)
{ {
static GType gst_dp_version_type = 0; static gsize gst_dp_version_type = 0;
static const GEnumValue gst_dp_version[] = { static const GEnumValue gst_dp_version[] = {
{GST_DP_VERSION_0_2, "GST_DP_VERSION_0_2", "0.2"}, {GST_DP_VERSION_0_2, "GST_DP_VERSION_0_2", "0.2"},
{GST_DP_VERSION_1_0, "GST_DP_VERSION_1_0", "1.0"}, {GST_DP_VERSION_1_0, "GST_DP_VERSION_1_0", "1.0"},
{0, NULL, NULL}, {0, NULL, NULL},
}; };
if (!gst_dp_version_type) { if (g_once_init_enter (&gst_dp_version_type)) {
gst_dp_version_type = GType tmp = g_enum_register_static ("GstDPVersion", gst_dp_version);
g_enum_register_static ("GstDPVersion", gst_dp_version); g_once_init_leave (&gst_dp_version_type, tmp);
} }
return gst_dp_version_type;
return (GType) gst_dp_version_type;
}; };
/** /**