[libvirt PATCH 01/16] domain_conf: graphics: use a function to format gl element

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Removes code duplication.

Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx>
---
 src/conf/domain_conf.c | 39 +++++++++++++++++----------------------
 1 file changed, 17 insertions(+), 22 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index f42b7075ad..850fe7e90b 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -26357,14 +26357,21 @@ virDomainGraphicsListenDefFormatAddr(virBuffer *buf,
 }
 
 static void
-virDomainSpiceGLDefFormat(virBuffer *buf, virDomainGraphicsDef *def)
+virDomainGraphicsDefFormatGL(virBuffer *buf,
+                             virTristateBool gl,
+                             char *rendernode)
 {
-    if (def->data.spice.gl == VIR_TRISTATE_BOOL_ABSENT)
+    if (gl == VIR_TRISTATE_BOOL_ABSENT && !rendernode)
         return;
 
-    virBufferAsprintf(buf, "<gl enable='%s'",
-                      virTristateBoolTypeToString(def->data.spice.gl));
-    virBufferEscapeString(buf, " rendernode='%s'", def->data.spice.rendernode);
+    virBufferAddLit(buf, "<gl");
+
+    if (gl != VIR_TRISTATE_BOOL_ABSENT)
+        virBufferAsprintf(buf, " enable='%s'", virTristateBoolTypeToString(gl));
+
+    if (rendernode)
+        virBufferEscapeString(buf, " rendernode='%s'", rendernode);
+
     virBufferAddLit(buf, "/>\n");
 }
 
@@ -26466,12 +26473,7 @@ virDomainGraphicsDefFormat(virBuffer *buf,
             children = true;
         }
 
-        if (def->data.sdl.gl != VIR_TRISTATE_BOOL_ABSENT) {
-            virBufferAsprintf(buf, "<gl enable='%s'",
-                              virTristateBoolTypeToString(def->data.sdl.gl));
-            virBufferAddLit(buf, "/>\n");
-        }
-
+        virDomainGraphicsDefFormatGL(buf, def->data.sdl.gl, NULL);
         break;
 
     case VIR_DOMAIN_GRAPHICS_TYPE_RDP:
@@ -26569,10 +26571,8 @@ virDomainGraphicsDefFormat(virBuffer *buf,
             children = true;
         }
 
-        virBufferAddLit(buf, "<gl");
-        virBufferEscapeString(buf, " rendernode='%s'",
-                              def->data.egl_headless.rendernode);
-        virBufferAddLit(buf, "/>\n");
+        virDomainGraphicsDefFormatGL(buf, VIR_TRISTATE_BOOL_ABSENT,
+                                     def->data.egl_headless.rendernode);
         break;
     case VIR_DOMAIN_GRAPHICS_TYPE_DBUS:
         if (def->data.dbus.p2p)
@@ -26590,12 +26590,7 @@ virDomainGraphicsDefFormat(virBuffer *buf,
             children = true;
         }
 
-        if (def->data.dbus.gl) {
-            virBufferAsprintf(buf, "<gl enable='%s'",
-                              virTristateBoolTypeToString(def->data.dbus.gl));
-            virBufferEscapeString(buf, " rendernode='%s'", def->data.dbus.rendernode);
-            virBufferAddLit(buf, "/>\n");
-        }
+        virDomainGraphicsDefFormatGL(buf, def->data.dbus.gl, def->data.dbus.rendernode);
 
         if (def->data.dbus.audioId > 0)
             virBufferAsprintf(buf, "<audio id='%d'/>\n",
@@ -26690,7 +26685,7 @@ virDomainGraphicsDefFormat(virBuffer *buf,
             virBufferAsprintf(buf, "<filetransfer enable='%s'/>\n",
                               virTristateBoolTypeToString(def->data.spice.filetransfer));
 
-        virDomainSpiceGLDefFormat(buf, def);
+        virDomainGraphicsDefFormatGL(buf, def->data.spice.gl, def->data.spice.rendernode);
     }
 
     if (def->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC) {
-- 
2.48.1




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux