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