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:
Thomas Haller
2013-11-27 22:49:48 +01:00
parent b8b8af38c1
commit f43586fc17

View File

@@ -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));
} }