From 232f295af346450c20452259276fbc99b26d617b Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 19 Feb 2005 13:02:45 +0000 Subject: [PATCH] gst/: name objects by default, not in gst_element_factory_create. Allows using elements created with g_object_new. (f... Original commit message from CVS: * gst/gstelementfactory.c: (gst_element_factory_create): * gst/gstobject.c: (gst_object_init), (gst_object_set_name_default), (gst_object_set_name): name objects by default, not in gst_element_factory_create. Allows using elements created with g_object_new. (fixes #167283) --- ChangeLog | 8 ++++++++ gst/gstelementfactory.c | 3 ++- gst/gstobject.c | 19 +++++++++++-------- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 251c351..fa3dd71 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2005-02-19 Benjamin Otte + * gst/gstelementfactory.c: (gst_element_factory_create): + * gst/gstobject.c: (gst_object_init), + (gst_object_set_name_default), (gst_object_set_name): + name objects by default, not in gst_element_factory_create. Allows + using elements created with g_object_new. (fixes #167283) + +2005-02-19 Benjamin Otte + * gst/gstinfo.c: (_gst_debug_init), (gst_debug_log_default): make the time that debugging functions print relative to when gst_init was called diff --git a/gst/gstelementfactory.c b/gst/gstelementfactory.c index 14039f7..8528099 100644 --- a/gst/gstelementfactory.c +++ b/gst/gstelementfactory.c @@ -324,7 +324,8 @@ gst_element_factory_create (GstElementFactory * factory, const gchar * name) g_type_class_unref (oclass); - gst_object_set_name (GST_OBJECT (element), name); + if (name) + gst_object_set_name (GST_OBJECT (element), name); return element; } diff --git a/gst/gstobject.c b/gst/gstobject.c index 62396d7..46fc246 100644 --- a/gst/gstobject.c +++ b/gst/gstobject.c @@ -72,7 +72,7 @@ static guint gst_signal_object_signals[SO_LAST_SIGNAL] = { 0 }; #endif static void gst_object_class_init (GstObjectClass * klass); -static void gst_object_init (GstObject * object); +static void gst_object_init (GTypeInstance * instance, gpointer g_class); #ifndef GST_DISABLE_TRACE static GObject *gst_object_constructor (GType type, @@ -89,6 +89,9 @@ static void gst_object_dispatch_properties_changed (GObject * object, static void gst_object_dispose (GObject * object); static void gst_object_finalize (GObject * object); +static void gst_object_set_name_default (GstObject * object, + const gchar * type_name); + #ifndef GST_DISABLE_LOADSAVE_REGISTRY static void gst_object_real_restore_thyself (GstObject * object, xmlNodePtr self); @@ -110,7 +113,7 @@ gst_object_get_type (void) NULL, sizeof (GstObject), 0, - (GInstanceInitFunc) gst_object_init, + gst_object_init, NULL }; @@ -177,11 +180,14 @@ gst_object_class_init (GstObjectClass * klass) } static void -gst_object_init (GstObject * object) +gst_object_init (GTypeInstance * instance, gpointer g_class) { + GstObject *object = GST_OBJECT (instance); + object->lock = g_mutex_new (); object->parent = NULL; object->name = NULL; + gst_object_set_name_default (object, G_OBJECT_CLASS_NAME (g_class)); object->flags = 0; GST_FLAG_SET (object, GST_FLOATING); @@ -433,13 +439,10 @@ gst_object_default_deep_notify (GObject * object, GstObject * orig, } static void -gst_object_set_name_default (GstObject * object) +gst_object_set_name_default (GstObject * object, const gchar * type_name) { gint count; gchar *name, *tmp; - const gchar *type_name; - - type_name = G_OBJECT_TYPE_NAME (object); /* to ensure guaranteed uniqueness across threads, only one thread * may ever assign a name */ @@ -487,7 +490,7 @@ gst_object_set_name (GstObject * object, const gchar * name) if (name != NULL) object->name = g_strdup (name); else - gst_object_set_name_default (object); + gst_object_set_name_default (object, G_OBJECT_TYPE_NAME (object)); } /** -- 2.7.4