
On Oct 9, 2020, at 4:58 AM, Pino Toscano <ptoscano@redhat.com> wrote:
On Friday, 9 October 2020 10:31:50 CEST Matt Coleman wrote:
+static int +hypervDomainSetAutostart(virDomainPtr domain, int autostart) +{ + int result = -1; + char uuid_string[VIR_UUID_STRING_BUFLEN]; + hypervPrivate *priv = domain->conn->privateData; + Msvm_VirtualSystemSettingData *vssd = NULL; + hypervInvokeParamsListPtr params = NULL; + g_auto(virBuffer) eprQuery = VIR_BUFFER_INITIALIZER; + virHashTablePtr autostartParam = NULL; + hypervWmiClassInfoListPtr embeddedParamClass = NULL; + const char *methodName = NULL, *embeddedParamName = NULL; + g_autofree char *enabledValue = NULL, *disabledValue = NULL; + + if (priv->wmiVersion == HYPERV_WMI_VERSION_V1) { + methodName = "ModifyVirtualSystem"; + embeddedParamName = "SystemSettingData"; + embeddedParamClass = Msvm_VirtualSystemGlobalSettingData_WmiInfo; + enabledValue = g_strdup("2"); + disabledValue = g_strdup("0"); + } else if (priv->wmiVersion == HYPERV_WMI_VERSION_V2) { + methodName = "ModifySystemSettings"; + embeddedParamName = "SystemSettings"; + embeddedParamClass = Msvm_VirtualSystemSettingData_WmiInfo; + enabledValue = g_strdup("4"); + disabledValue = g_strdup("2"); + }
It looks like 'enabledValue' and 'disabledValue' can be static strings (like 'methodName' and 'embeddedParamName').
I removed g_autofree and g_strdup() with the following patch applied on top of my initial changes. Can it be squashed into this commit, or do I have to submit a [PATCH v2]? Signed-off-by: Matt Coleman <matt@datto.com> --- diff --git a/src/hyperv/hyperv_driver.c b/src/hyperv/hyperv_driver.c index c91bc58488..baaace041b 100644 --- a/src/hyperv/hyperv_driver.c +++ b/src/hyperv/hyperv_driver.c @@ -1450,20 +1450,18 @@ hypervDomainSetAutostart(virDomainPtr domain, int autostart) virHashTablePtr autostartParam = NULL; hypervWmiClassInfoListPtr embeddedParamClass = NULL; const char *methodName = NULL, *embeddedParamName = NULL; - g_autofree char *enabledValue = NULL, *disabledValue = NULL; + char enabledValue[] = "2", disabledValue[] = "0"; if (priv->wmiVersion == HYPERV_WMI_VERSION_V1) { methodName = "ModifyVirtualSystem"; embeddedParamName = "SystemSettingData"; embeddedParamClass = Msvm_VirtualSystemGlobalSettingData_WmiInfo; - enabledValue = g_strdup("2"); - disabledValue = g_strdup("0"); } else if (priv->wmiVersion == HYPERV_WMI_VERSION_V2) { methodName = "ModifySystemSettings"; embeddedParamName = "SystemSettings"; embeddedParamClass = Msvm_VirtualSystemSettingData_WmiInfo; - enabledValue = g_strdup("4"); - disabledValue = g_strdup("2"); + enabledValue[0] = '4'; + disabledValue[0] = '2'; } virUUIDFormat(domain->uuid, uuid_string);