[libvirt] [libvirt-glib 4/4] gconfig: Use GVirConfigObject helpers for <video> XML

Christophe Fergeau cfergeau at redhat.com
Thu Jul 9 08:13:20 UTC 2015


GVirConfigDomainVideo is using raw libxml calls to set the 'heads' and
'vram' XML attributes rather than the helpers provided by
GVirConfigObject. This commit changes that, making the code a bit
simpler.
---
 libvirt-gconfig/libvirt-gconfig-domain-video.c | 38 +++++++++++---------------
 1 file changed, 16 insertions(+), 22 deletions(-)

diff --git a/libvirt-gconfig/libvirt-gconfig-domain-video.c b/libvirt-gconfig/libvirt-gconfig-domain-video.c
index 947d066..78ac54f 100644
--- a/libvirt-gconfig/libvirt-gconfig-domain-video.c
+++ b/libvirt-gconfig/libvirt-gconfig-domain-video.c
@@ -88,33 +88,27 @@ void gvir_config_domain_video_set_model(GVirConfigDomainVideo *video,
 void gvir_config_domain_video_set_vram(GVirConfigDomainVideo *video,
                                        guint kbytes)
 {
-    xmlNodePtr node;
-    char *vram_str;
+    GVirConfigObject *node;
 
-    node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(video));
-    if (node == NULL)
-        return;
-    node = gvir_config_xml_get_element(node, "model", NULL);
-    if (node == NULL)
-        return;
-    vram_str = g_strdup_printf("%u", kbytes);
-    xmlNewProp(node, (xmlChar*)"vram", (xmlChar*)vram_str);
-    g_free(vram_str);
+    g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_VIDEO(video));
+    node = gvir_config_object_add_child(GVIR_CONFIG_OBJECT(video), "model");
+    g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
+    gvir_config_object_set_attribute_with_type(node, "vram",
+                                               G_TYPE_UINT, kbytes,
+                                               NULL);
+    g_object_unref(G_OBJECT(node));
 }
 
 void gvir_config_domain_video_set_heads(GVirConfigDomainVideo *video,
                                         guint head_count)
 {
-    xmlNodePtr node;
-    char *heads_str;
+    GVirConfigObject *node;
 
-    node = gvir_config_object_get_xml_node(GVIR_CONFIG_OBJECT(video));
-    if (node == NULL)
-        return;
-    node = gvir_config_xml_get_element(node, "model", NULL);
-    if (node == NULL)
-        return;
-    heads_str = g_strdup_printf("%u", head_count);
-    xmlNewProp(node, (xmlChar*)"heads", (xmlChar*)heads_str);
-    g_free(heads_str);
+    g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_VIDEO(video));
+    node = gvir_config_object_add_child(GVIR_CONFIG_OBJECT(video), "model");
+    g_return_if_fail(GVIR_CONFIG_IS_OBJECT(node));
+    gvir_config_object_set_attribute_with_type(node, "heads",
+                                               G_TYPE_UINT, head_count,
+                                               NULL);
+    g_object_unref(G_OBJECT(node));
 }
-- 
2.4.3




More information about the libvir-list mailing list