[virt-tools-list] [libosinfo v2 5/8] InstallConfigParam:policy should not be writable

Zeeshan Ali (Khattak) zeeshanak at gnome.org
Fri Nov 9 15:14:21 UTC 2012


From: "Zeeshan Ali (Khattak)" <zeeshanak at gnome.org>

This actually not only breaks ABI but also the API: we remove one argument
of _new() function. The prop getter is the main part of this API that an
app will be using if its using this API at all so I think its worth it to
correct this now  (while we are causing other breakage here: See next
patch in this series).

I am also not certain that _new() should be part of the public API.
---
 osinfo/osinfo_install_config_param.c | 18 ++----------------
 osinfo/osinfo_install_config_param.h |  2 +-
 osinfo/osinfo_loader.c               |  6 ++++--
 3 files changed, 7 insertions(+), 19 deletions(-)

diff --git a/osinfo/osinfo_install_config_param.c b/osinfo/osinfo_install_config_param.c
index c6366c2..6d65c9b 100644
--- a/osinfo/osinfo_install_config_param.c
+++ b/osinfo/osinfo_install_config_param.c
@@ -69,13 +69,6 @@ osinfo_install_config_param_set_property(GObject *object,
                                     OSINFO_INSTALL_CONFIG_PARAM_PROP_NAME,
                                     g_value_get_string(value));
             break;
-        case PROP_POLICY:
-            {
-            osinfo_entity_set_param(OSINFO_ENTITY(config_param),
-                                    OSINFO_INSTALL_CONFIG_PARAM_PROP_POLICY,
-                                    g_value_get_string(value));
-            break;
-            }
         default:
             /* We don't have any other property... */
             G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -166,7 +159,6 @@ osinfo_install_config_param_class_init (OsinfoInstallConfigParamClass *klass)
                                 "Policy",
                                 _("Parameter policy"),
                                 NULL,
-                                G_PARAM_WRITABLE |
                                 G_PARAM_READABLE |
                                 G_PARAM_CONSTRUCT_ONLY |
                                 G_PARAM_STATIC_NAME |
@@ -176,7 +168,6 @@ osinfo_install_config_param_class_init (OsinfoInstallConfigParamClass *klass)
                                     PROP_POLICY,
                                     pspec);
 
-
     g_klass->finalize = osinfo_install_config_param_finalize;
 
     g_type_class_add_private (klass, sizeof (OsinfoInstallConfigParamPrivate));
@@ -197,19 +188,14 @@ osinfo_install_config_param_init (OsinfoInstallConfigParam *config_param)
 /**
  * osinfo_install_config_param_new:
  * @name: the configuration parameter name
- * @policy: the configuration parameter policy
  *
  * Construct a new configuration parameter to a #OsinfoInstallScript.
  *
  * Returns: (transfer full): the new configuration parameter
  */
-OsinfoInstallConfigParam *osinfo_install_config_param_new(const gchar *name,
-                                                          const gchar *policy)
+OsinfoInstallConfigParam *osinfo_install_config_param_new(const gchar *name)
 {
-    return g_object_new(OSINFO_TYPE_INSTALL_CONFIG_PARAM,
-                        "name", name,
-                        "policy", policy,
-                        NULL);
+    return g_object_new(OSINFO_TYPE_INSTALL_CONFIG_PARAM, "name", name, NULL);
 }
 
 /**
diff --git a/osinfo/osinfo_install_config_param.h b/osinfo/osinfo_install_config_param.h
index d588616..930614d 100644
--- a/osinfo/osinfo_install_config_param.h
+++ b/osinfo/osinfo_install_config_param.h
@@ -69,7 +69,7 @@ struct _OsinfoInstallConfigParamClass
 
 GType osinfo_install_config_param_get_type(void);
 
-OsinfoInstallConfigParam *osinfo_install_config_param_new(const gchar *name, const gchar *policy);
+OsinfoInstallConfigParam *osinfo_install_config_param_new(const gchar *name);
 
 const gchar *osinfo_install_config_param_get_name(const OsinfoInstallConfigParam *config_param);
 
diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c
index 4ad2d72..838b541 100644
--- a/osinfo/osinfo_loader.c
+++ b/osinfo/osinfo_loader.c
@@ -582,8 +582,10 @@ static void osinfo_loader_install_config_param(OsinfoLoader *loader,
     for (i = 0 ; i < nnodes ; i++) {
         gchar *name = (gchar *)xmlGetProp(nodes[i], BAD_CAST "name");
         gchar *policy = (gchar *)xmlGetProp(nodes[i], BAD_CAST "policy");
-        OsinfoInstallConfigParam *param =
-            osinfo_install_config_param_new(name, policy);
+        OsinfoInstallConfigParam *param = osinfo_install_config_param_new(name);
+        osinfo_entity_set_param(OSINFO_ENTITY(param),
+                                OSINFO_INSTALL_CONFIG_PARAM_PROP_POLICY,
+                                policy);
         osinfo_install_script_add_config_param(OSINFO_INSTALL_SCRIPT(entity),
                                                param);
 
-- 
1.8.0




More information about the virt-tools-list mailing list