mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-02 04:22:27 +00:00
gst/: make the name property a construct property, so objects always have a proper name.
Original commit message from CVS: * gst/gstelementfactory.c: (gst_element_factory_create): * gst/gstobject.c: (gst_object_class_init): make the name property a construct property, so objects always have a proper name. * gst/gstobject.c: (gst_object_set_name_default), (gst_object_set_name): fix potential doublefree when resetting a name to its default value
This commit is contained in:
parent
f7105a2638
commit
26d06184a3
3 changed files with 15 additions and 6 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
|||
2005-04-26 Benjamin Otte <in7y118@public.uni-hamburg.de>
|
||||
|
||||
* gst/gstelementfactory.c: (gst_element_factory_create):
|
||||
* gst/gstobject.c: (gst_object_class_init):
|
||||
make the name property a construct property, so objects always have
|
||||
a proper name.
|
||||
* gst/gstobject.c: (gst_object_set_name_default),
|
||||
(gst_object_set_name):
|
||||
fix potential doublefree when resetting a name to its default value
|
||||
|
||||
2005-04-25 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
|
||||
|
||||
* tests/sched/runxml.c: (main):
|
||||
|
|
|
@ -324,13 +324,11 @@ gst_element_factory_create (GstElementFactory * factory, const gchar * name)
|
|||
oclass->elementfactory = factory;
|
||||
|
||||
/* create an instance of the element */
|
||||
element = GST_ELEMENT (g_object_new (factory->type, NULL));
|
||||
element = GST_ELEMENT (g_object_new (factory->type, "name", name, NULL));
|
||||
g_assert (element != NULL);
|
||||
|
||||
g_type_class_unref (oclass);
|
||||
|
||||
gst_object_set_name (GST_OBJECT (element), name);
|
||||
|
||||
return element;
|
||||
}
|
||||
|
||||
|
|
|
@ -135,7 +135,7 @@ gst_object_class_init (GstObjectClass * klass)
|
|||
|
||||
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_NAME,
|
||||
g_param_spec_string ("name", "Name", "The name of the object",
|
||||
NULL, G_PARAM_READWRITE));
|
||||
NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
||||
|
||||
gst_object_signals[PARENT_SET] =
|
||||
g_signal_new ("parent-set", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
|
||||
|
@ -463,8 +463,7 @@ gst_object_set_name_default (GstObject * object)
|
|||
name = g_ascii_strdown (tmp, strlen (tmp));
|
||||
g_free (tmp);
|
||||
|
||||
gst_object_set_name (object, name);
|
||||
g_free (name);
|
||||
object->name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -488,6 +487,8 @@ gst_object_set_name (GstObject * object, const gchar * name)
|
|||
object->name = g_strdup (name);
|
||||
else
|
||||
gst_object_set_name_default (object);
|
||||
|
||||
g_object_notify (G_OBJECT (object), "name");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue