summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShixin Zeng <zeng.shixin@gmail.com>2010-07-20 09:23:54 -0500
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2010-08-06 19:30:51 +0200
commitcfefcc7183144c9e03f6051e5ba303c73aa33873 (patch)
tree7cbc3d9e158588b7527ef327b627c218792c1d74
parent27bebf745665178b36ec684d0c7ccd2561e2d59b (diff)
plugins: Make *_get_type() in plugins/* thread safe
It's not really needed here but using G_DEFINE_TYPE() reduces some copy&paste boilerplate code.
-rw-r--r--plugins/elements/gstfilesrc.c40
-rw-r--r--plugins/indexers/gstfileindex.c34
-rw-r--r--plugins/indexers/gstmemindex.c28
3 files changed, 8 insertions, 94 deletions
diff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c
index 46ef3e7afe..3290cfa1b6 100644
--- a/plugins/elements/gstfilesrc.c
+++ b/plugins/elements/gstfilesrc.c
@@ -486,52 +486,22 @@ struct _GstMmapBufferClass
GstBufferClass buffer_class;
};
-static void gst_mmap_buffer_init (GTypeInstance * instance, gpointer g_class);
-static void gst_mmap_buffer_class_init (gpointer g_class, gpointer class_data);
static void gst_mmap_buffer_finalize (GstMmapBuffer * mmap_buffer);
-static GstBufferClass *mmap_buffer_parent_class = NULL;
-static GType
-gst_mmap_buffer_get_type (void)
-{
- static GType _gst_mmap_buffer_type;
-
- if (G_UNLIKELY (_gst_mmap_buffer_type == 0)) {
- static const GTypeInfo mmap_buffer_info = {
- sizeof (GstMmapBufferClass),
- NULL,
- NULL,
- gst_mmap_buffer_class_init,
- NULL,
- NULL,
- sizeof (GstMmapBuffer),
- 0,
- gst_mmap_buffer_init,
- NULL
- };
-
- _gst_mmap_buffer_type = g_type_register_static (GST_TYPE_BUFFER,
- "GstMmapBuffer", &mmap_buffer_info, 0);
- }
- return _gst_mmap_buffer_type;
-}
+G_DEFINE_TYPE (GstMmapBuffer, gst_mmap_buffer, GST_TYPE_BUFFER);
static void
-gst_mmap_buffer_class_init (gpointer g_class, gpointer class_data)
+gst_mmap_buffer_class_init (GstMmapBufferClass * g_class)
{
GstMiniObjectClass *mini_object_class = GST_MINI_OBJECT_CLASS (g_class);
- mmap_buffer_parent_class = g_type_class_peek_parent (g_class);
-
mini_object_class->finalize =
(GstMiniObjectFinalizeFunction) gst_mmap_buffer_finalize;
}
static void
-gst_mmap_buffer_init (GTypeInstance * instance, gpointer g_class)
+gst_mmap_buffer_init (GstMmapBuffer * buf)
{
- GstBuffer *buf = (GstBuffer *) instance;
-
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_READONLY);
/* before we re-enable this flag, we probably need to fix _copy()
* _make_writable(), etc. in GstMiniObject/GstBuffer as well */
@@ -572,8 +542,8 @@ gst_mmap_buffer_finalize (GstMmapBuffer * mmap_buffer)
GST_LOG ("unmapped region %08lx+%08lx at %p",
(gulong) offset, (gulong) size, data);
- GST_MINI_OBJECT_CLASS (mmap_buffer_parent_class)->finalize (GST_MINI_OBJECT
- (mmap_buffer));
+ GST_MINI_OBJECT_CLASS (gst_mmap_buffer_parent_class)->finalize
+ (GST_MINI_OBJECT (mmap_buffer));
}
static GstBuffer *
diff --git a/plugins/indexers/gstfileindex.c b/plugins/indexers/gstfileindex.c
index 4744abcdcb..3601be8dc5 100644
--- a/plugins/indexers/gstfileindex.c
+++ b/plugins/indexers/gstfileindex.c
@@ -124,8 +124,6 @@ enum
ARG_LOCATION,
};
-static void gst_file_index_class_init (GstFileIndexClass * klass);
-static void gst_file_index_init (GstFileIndex * index);
static void gst_file_index_dispose (GObject * object);
static void
@@ -148,33 +146,7 @@ static GstIndexEntry *gst_file_index_get_assoc_entry (GstIndex * index, gint id,
#define CLASS(file_index) GST_FILE_INDEX_CLASS (G_OBJECT_GET_CLASS (file_index))
-static GstIndex *parent_class = NULL;
-
-static GType
-gst_file_index_get_type (void)
-{
- static GType file_index_type = 0;
-
- if (!file_index_type) {
- static const GTypeInfo file_index_info = {
- sizeof (GstFileIndexClass),
- NULL,
- NULL,
- (GClassInitFunc) gst_file_index_class_init,
- NULL,
- NULL,
- sizeof (GstFileIndex),
- 1,
- (GInstanceInitFunc) gst_file_index_init,
- NULL
- };
-
- file_index_type =
- g_type_register_static (GST_TYPE_INDEX, "GstFileIndex",
- &file_index_info, 0);
- }
- return file_index_type;
-}
+G_DEFINE_TYPE (GstFileIndex, gst_file_index, GST_TYPE_INDEX);
static void
gst_file_index_class_init (GstFileIndexClass * klass)
@@ -185,8 +157,6 @@ gst_file_index_class_init (GstFileIndexClass * klass)
gobject_class = (GObjectClass *) klass;
gstindex_class = (GstIndexClass *) klass;
- parent_class = g_type_class_peek_parent (klass);
-
gobject_class->dispose = gst_file_index_dispose;
gobject_class->set_property = gst_file_index_set_property;
gobject_class->get_property = gst_file_index_get_property;
@@ -259,7 +229,7 @@ gst_file_index_dispose (GObject * object)
gst_index_entry_free (index->ret_entry); /* hack */
- G_OBJECT_CLASS (parent_class)->dispose (object);
+ G_OBJECT_CLASS (gst_file_index_parent_class)->dispose (object);
}
struct fi_find_writer_context
diff --git a/plugins/indexers/gstmemindex.c b/plugins/indexers/gstmemindex.c
index c680eaa408..e77f4ea10f 100644
--- a/plugins/indexers/gstmemindex.c
+++ b/plugins/indexers/gstmemindex.c
@@ -107,8 +107,6 @@ enum
/* FILL ME */
};
-static void gst_mem_index_class_init (GstMemIndexClass * klass);
-static void gst_mem_index_init (GstMemIndex * index);
static void gst_mem_index_finalize (GObject * object);
static void gst_mem_index_add_entry (GstIndex * index, GstIndexEntry * entry);
@@ -122,31 +120,7 @@ static GstIndex *parent_class = NULL;
/*static guint gst_mem_index_signals[LAST_SIGNAL] = { 0 }; */
-static GType
-gst_mem_index_get_type (void)
-{
- static GType mem_index_type = 0;
-
- if (!mem_index_type) {
- static const GTypeInfo mem_index_info = {
- sizeof (GstMemIndexClass),
- NULL,
- NULL,
- (GClassInitFunc) gst_mem_index_class_init,
- NULL,
- NULL,
- sizeof (GstMemIndex),
- 1,
- (GInstanceInitFunc) gst_mem_index_init,
- NULL
- };
-
- mem_index_type =
- g_type_register_static (GST_TYPE_INDEX, "GstMemIndex", &mem_index_info,
- 0);
- }
- return mem_index_type;
-}
+G_DEFINE_TYPE (GstMemIndex, gst_mem_index, GST_TYPE_INDEX);
static void
gst_mem_index_class_init (GstMemIndexClass * klass)