libnm-util: refactor NMSetting construction, assert of setting name
Make the name property CONSTRUCT_ONLY. With this there is also no more need to overwrite the constructor(). Signed-off-by: Thomas Haller <thaller@redhat.com>
This commit is contained in:
@@ -1165,30 +1165,6 @@ nm_setting_init (NMSetting *setting)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static GObject*
|
|
||||||
constructor (GType type,
|
|
||||||
guint n_construct_params,
|
|
||||||
GObjectConstructParam *construct_params)
|
|
||||||
{
|
|
||||||
GObject *object;
|
|
||||||
NMSettingPrivate *priv;
|
|
||||||
|
|
||||||
object = G_OBJECT_CLASS (nm_setting_parent_class)->constructor (type,
|
|
||||||
n_construct_params,
|
|
||||||
construct_params);
|
|
||||||
if (!object)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
priv = NM_SETTING_GET_PRIVATE (object);
|
|
||||||
if (!priv->name) {
|
|
||||||
g_warning ("Setting name is not set.");
|
|
||||||
g_object_unref (object);
|
|
||||||
object = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return object;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
finalize (GObject *object)
|
finalize (GObject *object)
|
||||||
{
|
{
|
||||||
@@ -1207,8 +1183,9 @@ set_property (GObject *object, guint prop_id,
|
|||||||
|
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case PROP_NAME:
|
case PROP_NAME:
|
||||||
g_free (priv->name);
|
/* construct only */
|
||||||
priv->name = g_value_dup_string (value);
|
priv->name = g_value_dup_string (value);
|
||||||
|
g_assert (priv->name && *priv->name);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
@@ -1240,7 +1217,6 @@ nm_setting_class_init (NMSettingClass *setting_class)
|
|||||||
g_type_class_add_private (setting_class, sizeof (NMSettingPrivate));
|
g_type_class_add_private (setting_class, sizeof (NMSettingPrivate));
|
||||||
|
|
||||||
/* virtual methods */
|
/* virtual methods */
|
||||||
object_class->constructor = constructor;
|
|
||||||
object_class->set_property = set_property;
|
object_class->set_property = set_property;
|
||||||
object_class->get_property = get_property;
|
object_class->get_property = get_property;
|
||||||
object_class->finalize = finalize;
|
object_class->finalize = finalize;
|
||||||
@@ -1269,6 +1245,6 @@ nm_setting_class_init (NMSettingClass *setting_class)
|
|||||||
"has been created. Each setting class has a name, and "
|
"has been created. Each setting class has a name, and "
|
||||||
"all objects of that class share the same name.",
|
"all objects of that class share the same name.",
|
||||||
NULL,
|
NULL,
|
||||||
G_PARAM_READWRITE));
|
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user