From nobody Fri Dec 19 20:16:05 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1587477089; cv=none; d=zohomail.com; s=zohoarc; b=HQUhPVX/o0mJ1jRx+D4m2dleg20fbaSrh4qiV9oQNRNiYGBSW6gNNh8t3Df8C5WOmYkyerLFu/RTRonalnEP3cXq0n8gx0dLGFLzTdlaYIkjDw/r9CmwKBp9a+MBh4YZ83aF2LtehSRQKnpRVLRvUZ0GhZaVdUCB07wju4cWoJY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1587477089; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7sH/x/Pr9bcy6ynGKjtyEIsQYb3+FShpSnPYnk9KRHk=; b=GwbpCs2zdjCVKg8f8C+JBUU7K1YXrd3meoKQcslqqjtiTM1ZSSRp2lP5c3thHsY/l9VYSubHUqEcOucyANhb5SLPxdx1bRMqKWsIfVNLxVnVZAaABk7Ka0OX583YJnFUqLEKAJexZkJsJ5W76SxGr29/MJtCdNoIePSHlMWCxLk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1587477089203523.7519267087991; Tue, 21 Apr 2020 06:51:29 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-179-8wLyjaa-O36fwfZfxwp-ng-1; Tue, 21 Apr 2020 09:51:25 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A849A8017F3; Tue, 21 Apr 2020 13:51:17 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 742BB10027A9; Tue, 21 Apr 2020 13:51:17 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 1875718184AE; Tue, 21 Apr 2020 13:51:17 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 03LDotYU003622 for ; Tue, 21 Apr 2020 09:50:55 -0400 Received: by smtp.corp.redhat.com (Postfix) id 52B1A2093CE6; Tue, 21 Apr 2020 13:50:55 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4C7132024517 for ; Tue, 21 Apr 2020 13:50:52 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C84ED8FF67E for ; Tue, 21 Apr 2020 13:50:52 +0000 (UTC) Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-45-Jtggp0E-Mh2uleHw0_Ilzg-1; Tue, 21 Apr 2020 09:50:50 -0400 Received: by mail-wr1-f50.google.com with SMTP id s10so7414792wrr.0 for ; Tue, 21 Apr 2020 06:50:50 -0700 (PDT) Received: from localhost.localdomain (public-gprs377075.centertel.pl. [37.47.104.52]) by smtp.gmail.com with ESMTPSA id q10sm3981826wrv.95.2020.04.21.06.50.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Apr 2020 06:50:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1587477087; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=7sH/x/Pr9bcy6ynGKjtyEIsQYb3+FShpSnPYnk9KRHk=; b=dYfeRmhry1rGb9bU4oBkIAmjZ7qrAl+IHg//+OejWNxM42wTwpp6iX0k7arROidm/79U+d X7ZrErFKYMeDDUDrLxJrTyzcBrIBX/4tIYXrmYmje6F5pzye05vygAC7sV9bXVeKdcLY6F 9/9xRGGxzECGTuUpCsm+l76DafsS2UA= X-MC-Unique: 8wLyjaa-O36fwfZfxwp-ng-1 X-MC-Unique: Jtggp0E-Mh2uleHw0_Ilzg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GSIj7aE3LGUBV9aQ/cdaxRrVDePNMeb0hKlmE5OZyd4=; b=FcPmK3MTk2kXs7T3cJF0J7rKT6b5CY6wX79JcrLXEvRO/yJRUUSQnISKoxJNPjLvTr 0fpKELz6XwBYFMcHG9yc05JA0/UiUCagPRnBz3sbGQmIKYm8Vrj4vy3Nt3D9oY+S/Tpq ktk33ERGhMQAam8HIBhrldp+7QadGuRcATcbp0nS61+SuxG31lLTxrIgzyOp/d05db3z 6Y+0zSKBF8BKvHpq7o6EdLF448lU6xYPcU1kj9dRxMOIolEXJrDxaBk2NgkieurYWu8L i/OfNIuw6gmDDjZ4q+pGhCJg7wt5shAFnG2yucp3JfVjTB/cvf3zCoLW4Vy1YL+RKVz2 4kyA== X-Gm-Message-State: AGi0PuYKxj8NklTfBoQHj+n88NGp8NWVyl2a0zaBhueJIi1pu+XWnigB kvm7lHdOrLnrzTmcIO5L8DZMVKNymNY= X-Google-Smtp-Source: APiQypJRSkKO+do0bzHY7nZoQYojIldr4dGe2zig7Alkk3NaAkkBqXkbMQfGBgIO85Tf6Jt5y3Lv5w== X-Received: by 2002:adf:dbce:: with SMTP id e14mr22712722wrj.337.1587477048130; Tue, 21 Apr 2020 06:50:48 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH v2 33/40] libxl: convert libxlDriverConfig to GObject Date: Tue, 21 Apr 2020 15:49:14 +0200 Message-Id: <20200421134921.3717019-34-r4f4rfs@gmail.com> In-Reply-To: <20200421134921.3717019-1-r4f4rfs@gmail.com> References: <20200421134921.3717019-1-r4f4rfs@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 03LDotYU003622 X-loop: libvir-list@redhat.com Cc: Rafael Fonseca X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Signed-off-by: Rafael Fonseca --- src/libxl/libxl_conf.c | 62 ++++++++------ src/libxl/libxl_conf.h | 12 ++- src/libxl/libxl_driver.c | 162 ++++++++++++------------------------ src/libxl/libxl_migration.c | 21 ++--- tests/testutilsxen.c | 2 +- 5 files changed, 107 insertions(+), 152 deletions(-) diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index be37e0835d..9ea4e1c941 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -52,25 +52,40 @@ VIR_LOG_INIT("libxl.libxl_conf"); =20 =20 -static virClassPtr libxlDriverConfigClass; -static void libxlDriverConfigDispose(void *obj); +G_DEFINE_TYPE(libxlDriverConfig, libxl_driver_config, G_TYPE_OBJECT); =20 -static int libxlConfigOnceInit(void) -{ - if (!VIR_CLASS_NEW(libxlDriverConfig, virClassForObject())) - return -1; +static void libxlDriverConfigDispose(GObject *obj); +static void libxlDriverConfigFinalize(GObject *obj); =20 - return 0; +static void +libxl_driver_config_init(libxlDriverConfig *cfg G_GNUC_UNUSED) +{ } =20 -VIR_ONCE_GLOBAL_INIT(libxlConfig); +static void +libxl_driver_config_class_init(libxlDriverConfigClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->dispose =3D libxlDriverConfigDispose; + obj->finalize =3D libxlDriverConfigFinalize; +} =20 static void -libxlDriverConfigDispose(void *obj) +libxlDriverConfigDispose(GObject *obj) { - libxlDriverConfigPtr cfg =3D obj; + libxlDriverConfigPtr cfg =3D LIBXL_DRIVER_CONFIG(obj); =20 g_clear_object(&cfg->caps); + + G_OBJECT_CLASS(libxl_driver_config_parent_class)->dispose(obj); +} + +static void +libxlDriverConfigFinalize(GObject *obj) +{ + libxlDriverConfigPtr cfg =3D LIBXL_DRIVER_CONFIG(obj); + libxl_ctx_free(cfg->ctx); if (cfg->logger) libxlLoggerFree(cfg->logger); @@ -86,6 +101,8 @@ libxlDriverConfigDispose(void *obj) VIR_FREE(cfg->lockManagerName); VIR_FREE(cfg->channelDir); virFirmwareFreeList(cfg->firmwares, cfg->nfirmwares); + + G_OBJECT_CLASS(libxl_driver_config_parent_class)->finalize(obj); } =20 =20 @@ -1688,13 +1705,8 @@ libxlGetAutoballoonConf(libxlDriverConfigPtr cfg, libxlDriverConfigPtr libxlDriverConfigNew(void) { - libxlDriverConfigPtr cfg; - - if (libxlConfigInitialize() < 0) - return NULL; - - if (!(cfg =3D virObjectNew(libxlDriverConfigClass))) - return NULL; + g_autoptr(libxlDriverConfig) cfg =3D + LIBXL_DRIVER_CONFIG(g_object_new(LIBXL_TYPE_DRIVER_CONFIG, NULL)); =20 cfg->configBaseDir =3D g_strdup(LIBXL_CONFIG_BASE_DIR); cfg->configDir =3D g_strdup(LIBXL_CONFIG_DIR); @@ -1710,34 +1722,30 @@ libxlDriverConfigNew(void) if (virFirmwareParseList(DEFAULT_LOADER_NVRAM, &cfg->firmwares, &cfg->nfirmwares) < 0) - goto error; + return NULL; =20 #else if (VIR_ALLOC_N(cfg->firmwares, 1) < 0) - goto error; + return NULL; cfg->nfirmwares =3D 1; if (VIR_ALLOC(cfg->firmwares[0]) < 0) - goto error; + return NULL; cfg->firmwares[0]->name =3D g_strdup(LIBXL_FIRMWARE_DIR "/ovmf.bin"); #endif =20 /* Always add hvmloader to firmwares */ if (VIR_REALLOC_N(cfg->firmwares, cfg->nfirmwares + 1) < 0) - goto error; + return NULL; cfg->nfirmwares++; if (VIR_ALLOC(cfg->firmwares[cfg->nfirmwares - 1]) < 0) - goto error; + return NULL; cfg->firmwares[cfg->nfirmwares - 1]->name =3D g_strdup(LIBXL_FIRMWARE_= DIR "/hvmloader"); =20 /* defaults for keepalive messages */ cfg->keepAliveInterval =3D 5; cfg->keepAliveCount =3D 5; =20 - return cfg; - - error: - virObjectUnref(cfg); - return NULL; + return g_steal_pointer(&cfg); } =20 int diff --git a/src/libxl/libxl_conf.h b/src/libxl/libxl_conf.h index 07b3373170..94386cc8cc 100644 --- a/src/libxl/libxl_conf.h +++ b/src/libxl/libxl_conf.h @@ -37,6 +37,7 @@ #include "virfirmware.h" #include "libxl_capabilities.h" #include "libxl_logger.h" +#include =20 #define LIBXL_DRIVER_NAME "xenlight" #define LIBXL_VNC_PORT_MIN 5900 @@ -60,11 +61,17 @@ typedef struct _libxlDriverPrivate libxlDriverPrivate; typedef libxlDriverPrivate *libxlDriverPrivatePtr; =20 -typedef struct _libxlDriverConfig libxlDriverConfig; +#define LIBXL_TYPE_DRIVER_CONFIG libxl_driver_config_get_type() +G_DECLARE_FINAL_TYPE(libxlDriverConfig, + libxl_driver_config, + LIBXL, + DRIVER_CONFIG, + GObject); + typedef libxlDriverConfig *libxlDriverConfigPtr; =20 struct _libxlDriverConfig { - virObject parent; + GObject parent; =20 const libxl_version_info *verInfo; unsigned int version; @@ -102,7 +109,6 @@ struct _libxlDriverConfig { size_t nfirmwares; }; =20 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(libxlDriverConfig, virObjectUnref); =20 =20 struct _libxlDriverPrivate { diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 0e4d6c56fc..affae0e86e 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -390,7 +390,7 @@ libxlReconnectDomain(virDomainObjPtr vm, { libxlDriverPrivatePtr driver =3D opaque; libxlDomainObjPrivatePtr priv =3D vm->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); int rc; libxl_dominfo d_info; int len; @@ -484,7 +484,6 @@ libxlReconnectDomain(virDomainObjPtr vm, libxl_dominfo_dispose(&d_info); virObjectUnlock(vm); virObjectUnref(vm); - virObjectUnref(cfg); return ret; =20 error: @@ -519,7 +518,7 @@ libxlStateCleanup(void) if (libxl_driver->lockFD !=3D -1) virPidFileRelease(libxl_driver->config->stateDir, "driver", libxl_= driver->lockFD); =20 - virObjectUnref(libxl_driver->config); + g_clear_object(&libxl_driver->config); virMutexDestroy(&libxl_driver->lock); VIR_FREE(libxl_driver); =20 @@ -589,7 +588,7 @@ const struct libxl_event_hooks ev_hooks =3D { static int libxlAddDom0(libxlDriverPrivatePtr driver) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainDefPtr def =3D NULL; virDomainObjPtr vm =3D NULL; libxl_dominfo d_info; @@ -642,7 +641,6 @@ libxlAddDom0(libxlDriverPrivatePtr driver) libxl_dominfo_dispose(&d_info); virDomainDefFree(def); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -831,7 +829,7 @@ libxlStateInitialize(bool privileged, static int libxlStateReload(void) { - libxlDriverConfigPtr cfg; + g_autoptr(libxlDriverConfig) cfg =3D NULL; =20 if (!libxl_driver) return 0; @@ -849,7 +847,6 @@ libxlStateReload(void) libxlAutostartDomain, libxl_driver); =20 - virObjectUnref(cfg); return 0; } =20 @@ -918,14 +915,13 @@ static int libxlConnectGetVersion(virConnectPtr conn, unsigned long *version) { libxlDriverPrivatePtr driver =3D conn->privateData; - libxlDriverConfigPtr cfg; + g_autoptr(libxlDriverConfig) cfg =3D NULL; =20 if (virConnectGetVersionEnsureACL(conn) < 0) return 0; =20 cfg =3D libxlDriverConfigGet(driver); *version =3D cfg->version; - virObjectUnref(cfg); return 0; } =20 @@ -965,7 +961,7 @@ libxlConnectGetMaxVcpus(virConnectPtr conn, const char = *type G_GNUC_UNUSED) { int ret; libxlDriverPrivatePtr driver =3D conn->privateData; - libxlDriverConfigPtr cfg; + g_autoptr(libxlDriverConfig) cfg =3D NULL; =20 if (virConnectGetMaxVcpusEnsureACL(conn) < 0) return -1; @@ -979,7 +975,6 @@ libxlConnectGetMaxVcpus(virConnectPtr conn, const char = *type G_GNUC_UNUSED) if (ret <=3D 0) ret =3D -1; =20 - virObjectUnref(cfg); return ret; } =20 @@ -997,7 +992,7 @@ libxlConnectGetCapabilities(virConnectPtr conn) { libxlDriverPrivatePtr driver =3D conn->privateData; char *xml; - libxlDriverConfigPtr cfg; + g_autoptr(libxlDriverConfig) cfg =3D NULL; =20 if (virConnectGetCapabilitiesEnsureACL(conn) < 0) return NULL; @@ -1005,7 +1000,6 @@ libxlConnectGetCapabilities(virConnectPtr conn) cfg =3D libxlDriverConfigGet(driver); xml =3D virCapabilitiesFormatXML(cfg->caps); =20 - virObjectUnref(cfg); return xml; } =20 @@ -1041,7 +1035,7 @@ libxlDomainCreateXML(virConnectPtr conn, const char *= xml, virDomainDefPtr def; virDomainObjPtr vm =3D NULL; virDomainPtr dom =3D NULL; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); unsigned int parse_flags =3D VIR_DOMAIN_DEF_PARSE_INACTIVE; =20 virCheckFlags(VIR_DOMAIN_START_PAUSED | @@ -1086,7 +1080,6 @@ libxlDomainCreateXML(virConnectPtr conn, const char *= xml, cleanup: virDomainDefFree(def); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return dom; } =20 @@ -1163,7 +1156,7 @@ static int libxlDomainSuspend(virDomainPtr dom) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; virObjectEventPtr event =3D NULL; int ret =3D -1; @@ -1207,7 +1200,6 @@ libxlDomainSuspend(virDomainPtr dom) cleanup: virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } =20 @@ -1216,7 +1208,7 @@ static int libxlDomainResume(virDomainPtr dom) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; virObjectEventPtr event =3D NULL; int ret =3D -1; @@ -1261,7 +1253,6 @@ libxlDomainResume(virDomainPtr dom) cleanup: virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } =20 @@ -1269,7 +1260,7 @@ static int libxlDomainShutdownFlags(virDomainPtr dom, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; int ret =3D -1; =20 @@ -1319,7 +1310,6 @@ libxlDomainShutdownFlags(virDomainPtr dom, unsigned i= nt flags) =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -1334,7 +1324,7 @@ static int libxlDomainReboot(virDomainPtr dom, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; int ret =3D -1; =20 @@ -1366,7 +1356,6 @@ libxlDomainReboot(virDomainPtr dom, unsigned int flag= s) =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -1375,7 +1364,7 @@ libxlDomainDestroyFlags(virDomainPtr dom, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; int ret =3D -1; virObjectEventPtr event =3D NULL; @@ -1420,7 +1409,6 @@ libxlDomainDestroyFlags(virDomainPtr dom, cleanup: virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } =20 @@ -1440,7 +1428,7 @@ libxlDomainPMSuspendForDuration(virDomainPtr dom, virDomainObjPtr vm; int ret =3D -1; libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virObjectEventPtr event =3D NULL; =20 virCheckFlags(0, -1); @@ -1506,7 +1494,7 @@ libxlDomainPMWakeup(virDomainPtr dom, unsigned int fl= ags) int ret =3D -1; virObjectEventPtr event =3D NULL; libxlDomainObjPrivatePtr priv; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); =20 virCheckFlags(0, -1); =20 @@ -1635,7 +1623,7 @@ libxlDomainSetMemoryFlags(virDomainPtr dom, unsigned = long newmem, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; virDomainDefPtr persistentDef =3D NULL; int ret =3D -1; @@ -1720,7 +1708,6 @@ libxlDomainSetMemoryFlags(virDomainPtr dom, unsigned = long newmem, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -1740,7 +1727,7 @@ static int libxlDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; libxl_dominfo d_info; int ret =3D -1; @@ -1776,7 +1763,6 @@ libxlDomainGetInfo(virDomainPtr dom, virDomainInfoPtr= info) =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -1814,7 +1800,7 @@ libxlDoDomainSave(libxlDriverPrivatePtr driver, const char *to, bool managed) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); libxlSavefileHeader hdr; virObjectEventPtr event =3D NULL; char *xml =3D NULL; @@ -1891,7 +1877,6 @@ libxlDoDomainSave(libxlDriverPrivatePtr driver, if (VIR_CLOSE(fd) < 0) virReportSystemError(errno, "%s", _("cannot close file")); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } =20 @@ -1956,7 +1941,7 @@ libxlDomainRestoreFlags(virConnectPtr conn, const cha= r *from, const char *dxml, unsigned int flags) { libxlDriverPrivatePtr driver =3D conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm =3D NULL; virDomainDefPtr def =3D NULL; libxlSavefileHeader hdr; @@ -2009,7 +1994,6 @@ libxlDomainRestoreFlags(virConnectPtr conn, const cha= r *from, virReportSystemError(errno, "%s", _("cannot close file")); virDomainDefFree(def); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2023,7 +2007,7 @@ static int libxlDomainCoreDump(virDomainPtr dom, const char *to, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; virObjectEventPtr event =3D NULL; bool paused =3D false; @@ -2106,7 +2090,6 @@ libxlDomainCoreDump(virDomainPtr dom, const char *to,= unsigned int flags) cleanup: virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } =20 @@ -2239,7 +2222,7 @@ libxlDomainSetVcpusFlags(virDomainPtr dom, unsigned i= nt nvcpus, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainDefPtr def; virDomainObjPtr vm; libxl_bitmap map; @@ -2377,7 +2360,6 @@ libxlDomainSetVcpusFlags(virDomainPtr dom, unsigned i= nt nvcpus, cleanup: VIR_FREE(bitmask); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2458,7 +2440,7 @@ libxlDomainPinVcpuFlags(virDomainPtr dom, unsigned in= t vcpu, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainDefPtr targetDef =3D NULL; virBitmapPtr pcpumap =3D NULL; virDomainVcpuDefPtr vcpuinfo; @@ -2526,7 +2508,6 @@ libxlDomainPinVcpuFlags(virDomainPtr dom, unsigned in= t vcpu, cleanup: virDomainObjEndAPI(&vm); virBitmapFree(pcpumap); - virObjectUnref(cfg); return ret; } =20 @@ -2544,7 +2525,7 @@ libxlDomainGetVcpuPinInfo(virDomainPtr dom, int ncpum= aps, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm =3D NULL; virDomainDefPtr targetDef =3D NULL; int ret =3D -1; @@ -2573,7 +2554,6 @@ libxlDomainGetVcpuPinInfo(virDomainPtr dom, int ncpum= aps, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2582,7 +2562,7 @@ libxlDomainGetVcpus(virDomainPtr dom, virVcpuInfoPtr = info, int maxinfo, unsigned char *cpumaps, int maplen) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; int ret =3D -1; libxl_vcpuinfo *vcpuinfo; @@ -2634,7 +2614,6 @@ libxlDomainGetVcpus(virDomainPtr dom, virVcpuInfoPtr = info, int maxinfo, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2642,7 +2621,7 @@ static char * libxlDomainGetXMLDesc(virDomainPtr dom, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; virDomainDefPtr def; char *ret =3D NULL; @@ -2665,7 +2644,6 @@ libxlDomainGetXMLDesc(virDomainPtr dom, unsigned int = flags) =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2676,7 +2654,7 @@ libxlConnectDomainXMLFromNative(virConnectPtr conn, unsigned int flags) { libxlDriverPrivatePtr driver =3D conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainDefPtr def =3D NULL; g_autoptr(virConf) conf =3D NULL; char *xml =3D NULL; @@ -2715,7 +2693,6 @@ libxlConnectDomainXMLFromNative(virConnectPtr conn, =20 cleanup: virDomainDefFree(def); - virObjectUnref(cfg); return xml; } =20 @@ -2726,7 +2703,7 @@ libxlConnectDomainXMLToNative(virConnectPtr conn, con= st char * nativeFormat, unsigned int flags) { libxlDriverPrivatePtr driver =3D conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainDefPtr def =3D NULL; g_autoptr(virConf) conf =3D NULL; int len =3D MAX_CONFIG_SIZE; @@ -2765,7 +2742,6 @@ libxlConnectDomainXMLToNative(virConnectPtr conn, con= st char * nativeFormat, =20 cleanup: virDomainDefFree(def); - virObjectUnref(cfg); return ret; } =20 @@ -2845,7 +2821,7 @@ static virDomainPtr libxlDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned in= t flags) { libxlDriverPrivatePtr driver =3D conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainDefPtr def =3D NULL; virDomainObjPtr vm =3D NULL; virDomainPtr dom =3D NULL; @@ -2895,7 +2871,6 @@ libxlDomainDefineXMLFlags(virConnectPtr conn, const c= har *xml, unsigned int flag virDomainDefFree(oldDef); virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return dom; } =20 @@ -2910,7 +2885,7 @@ libxlDomainUndefineFlags(virDomainPtr dom, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; virObjectEventPtr event =3D NULL; char *name =3D NULL; @@ -2966,7 +2941,6 @@ libxlDomainUndefineFlags(virDomainPtr dom, VIR_FREE(name); virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } =20 @@ -2979,7 +2953,7 @@ libxlDomainUndefine(virDomainPtr dom) static int libxlDomainChangeEjectableMedia(virDomainObjPtr vm, virDomainDiskDefPtr di= sk) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(libxl_driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(libxl_driver= ); virDomainDiskDefPtr origdisk =3D NULL; libxl_device_disk x_disk; size_t i; @@ -3026,14 +3000,13 @@ libxlDomainChangeEjectableMedia(virDomainObjPtr vm,= virDomainDiskDefPtr disk) ret =3D 0; =20 cleanup: - virObjectUnref(cfg); return ret; } =20 static int libxlDomainAttachDeviceDiskLive(virDomainObjPtr vm, virDomainDeviceDefPtr = dev) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(libxl_driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(libxl_driver= ); virDomainDiskDefPtr l_disk =3D dev->data.disk; libxl_device_disk x_disk; int ret =3D -1; @@ -3097,7 +3070,6 @@ libxlDomainAttachDeviceDiskLive(virDomainObjPtr vm, v= irDomainDeviceDefPtr dev) } =20 cleanup: - virObjectUnref(cfg); return ret; } =20 @@ -3106,7 +3078,7 @@ libxlDomainAttachHostPCIDevice(libxlDriverPrivatePtr = driver, virDomainObjPtr vm, virDomainHostdevDefPtr hostdev) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); libxl_device_pci pcidev; virDomainHostdevDefPtr found; virHostdevManagerPtr hostdev_mgr =3D driver->hostdevMgr; @@ -3153,7 +3125,6 @@ libxlDomainAttachHostPCIDevice(libxlDriverPrivatePtr = driver, vm->def->name, &hostdev, 1, NULL); =20 cleanup: - virObjectUnref(cfg); libxl_device_pci_dispose(&pcidev); return ret; } @@ -3164,7 +3135,7 @@ libxlDomainAttachControllerDevice(libxlDriverPrivateP= tr driver, virDomainObjPtr vm, virDomainControllerDefPtr controller) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); const char *type =3D virDomainControllerTypeToString(controller->type); libxl_device_usbctrl usbctrl; int ret =3D -1; @@ -3208,7 +3179,6 @@ libxlDomainAttachControllerDevice(libxlDriverPrivateP= tr driver, ret =3D 0; =20 cleanup: - virObjectUnref(cfg); libxl_device_usbctrl_dispose(&usbctrl); return ret; } @@ -3218,7 +3188,7 @@ libxlDomainAttachHostUSBDevice(libxlDriverPrivatePtr = driver, virDomainObjPtr vm, virDomainHostdevDefPtr hostdev) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); libxl_device_usbdev usbdev; virHostdevManagerPtr hostdev_mgr =3D driver->hostdevMgr; int ret =3D -1; @@ -3288,7 +3258,6 @@ libxlDomainAttachHostUSBDevice(libxlDriverPrivatePtr = driver, vm->def->name, &hostdev, 1); =20 cleanup: - virObjectUnref(cfg); libxl_device_usbdev_dispose(&usbdev); return ret; } @@ -3332,7 +3301,7 @@ libxlDomainAttachHostDevice(libxlDriverPrivatePtr dri= ver, static int libxlDomainDetachDeviceDiskLive(virDomainObjPtr vm, virDomainDeviceDefPtr = dev) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(libxl_driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(libxl_driver= ); virDomainDiskDefPtr l_disk =3D NULL; libxl_device_disk x_disk; int idx; @@ -3385,7 +3354,6 @@ libxlDomainDetachDeviceDiskLive(virDomainObjPtr vm, v= irDomainDeviceDefPtr dev) } =20 cleanup: - virObjectUnref(cfg); return ret; } =20 @@ -3394,7 +3362,7 @@ libxlDomainAttachNetDevice(libxlDriverPrivatePtr driv= er, virDomainObjPtr vm, virDomainNetDefPtr net) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainNetType actualType; libxl_device_nic nic; int ret =3D -1; @@ -3475,7 +3443,6 @@ libxlDomainAttachNetDevice(libxlDriverPrivatePtr driv= er, virDomainNetReleaseActualDevice(conn, vm->def, net); } virObjectUnref(conn); - virObjectUnref(cfg); virErrorRestore(&save_err); return ret; } @@ -3643,7 +3610,7 @@ libxlDomainDetachHostPCIDevice(libxlDriverPrivatePtr = driver, virDomainObjPtr vm, virDomainHostdevDefPtr hostdev) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainHostdevSubsysPtr subsys =3D &hostdev->source.subsys; virDomainHostdevSubsysPCIPtr pcisrc =3D &subsys->u.pci; libxl_device_pci pcidev; @@ -3698,7 +3665,6 @@ libxlDomainDetachHostPCIDevice(libxlDriverPrivatePtr = driver, virDomainHostdevDefFree(detach); =20 cleanup: - virObjectUnref(cfg); libxl_device_pci_dispose(&pcidev); return ret; } @@ -3714,7 +3680,7 @@ libxlDomainDetachControllerDevice(libxlDriverPrivateP= tr driver, virDomainControllerDefPtr controller =3D dev->data.controller; const char *type =3D virDomainControllerTypeToString(controller->type); libxl_device_usbctrl usbctrl; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); =20 libxl_device_usbctrl_init(&usbctrl); =20 @@ -3750,7 +3716,6 @@ libxlDomainDetachControllerDevice(libxlDriverPrivateP= tr driver, =20 cleanup: virDomainControllerDefFree(detach); - virObjectUnref(cfg); libxl_device_usbctrl_dispose(&usbctrl); return ret; } @@ -3760,7 +3725,7 @@ libxlDomainDetachHostUSBDevice(libxlDriverPrivatePtr = driver, virDomainObjPtr vm, virDomainHostdevDefPtr hostdev) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainHostdevSubsysPtr subsys =3D &hostdev->source.subsys; virDomainHostdevSubsysUSBPtr usbsrc =3D &subsys->u.usb; virHostdevManagerPtr hostdev_mgr =3D driver->hostdevMgr; @@ -3818,7 +3783,6 @@ libxlDomainDetachHostUSBDevice(libxlDriverPrivatePtr = driver, =20 cleanup: virDomainHostdevDefFree(detach); - virObjectUnref(cfg); libxl_device_usbdev_dispose(&usbdev); return ret; } @@ -3861,7 +3825,7 @@ libxlDomainDetachNetDevice(libxlDriverPrivatePtr driv= er, virDomainObjPtr vm, virDomainNetDefPtr net) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); int detachidx; virDomainNetDefPtr detach =3D NULL; libxl_device_nic nic; @@ -3912,7 +3876,6 @@ libxlDomainDetachNetDevice(libxlDriverPrivatePtr driv= er, } virDomainNetRemove(vm->def, detachidx); } - virObjectUnref(cfg); virErrorRestore(&save_err); return ret; } @@ -4101,7 +4064,7 @@ libxlDomainAttachDeviceFlags(virDomainPtr dom, const = char *xml, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm =3D NULL; virDomainDefPtr vmdef =3D NULL; virDomainDeviceDefPtr dev =3D NULL; @@ -4173,7 +4136,6 @@ libxlDomainAttachDeviceFlags(virDomainPtr dom, const = char *xml, virDomainDefFree(vmdef); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4189,7 +4151,7 @@ libxlDomainDetachDeviceFlags(virDomainPtr dom, const = char *xml, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm =3D NULL; virDomainDefPtr vmdef =3D NULL; virDomainDeviceDefPtr dev =3D NULL; @@ -4263,7 +4225,6 @@ libxlDomainDetachDeviceFlags(virDomainPtr dom, const = char *xml, virDomainDefFree(vmdef); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4279,7 +4240,7 @@ libxlDomainUpdateDeviceFlags(virDomainPtr dom, const = char *xml, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm =3D NULL; virDomainDefPtr vmdef =3D NULL; virDomainDeviceDefPtr dev =3D NULL; @@ -4345,7 +4306,6 @@ libxlDomainUpdateDeviceFlags(virDomainPtr dom, const = char *xml, virDomainDefFree(vmdef); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4354,7 +4314,7 @@ libxlNodeGetFreeMemory(virConnectPtr conn) { libxl_physinfo phy_info; libxlDriverPrivatePtr driver =3D conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); unsigned long long ret =3D 0; =20 libxl_physinfo_init(&phy_info); @@ -4371,7 +4331,6 @@ libxlNodeGetFreeMemory(virConnectPtr conn) =20 cleanup: libxl_physinfo_dispose(&phy_info); - virObjectUnref(cfg); return ret; } =20 @@ -4385,7 +4344,7 @@ libxlNodeGetCellsFreeMemory(virConnectPtr conn, int ret =3D -1, nr_nodes =3D 0; libxl_numainfo *numa_info =3D NULL; libxlDriverPrivatePtr driver =3D conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); =20 if (virNodeGetCellsFreeMemoryEnsureACL(conn) < 0) goto cleanup; @@ -4419,7 +4378,6 @@ libxlNodeGetCellsFreeMemory(virConnectPtr conn, =20 cleanup: libxl_numainfo_list_free(numa_info, nr_nodes); - virObjectUnref(cfg); return ret; } =20 @@ -4484,7 +4442,7 @@ static int libxlDomainSetAutostart(virDomainPtr dom, int autostart) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; char *configFile =3D NULL, *autostartLink =3D NULL; int ret =3D -1; @@ -4548,7 +4506,6 @@ libxlDomainSetAutostart(virDomainPtr dom, int autosta= rt) VIR_FREE(configFile); VIR_FREE(autostartLink); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4556,7 +4513,7 @@ static char * libxlDomainGetSchedulerType(virDomainPtr dom, int *nparams) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; char * ret =3D NULL; const char *name =3D NULL; @@ -4603,7 +4560,6 @@ libxlDomainGetSchedulerType(virDomainPtr dom, int *np= arams) =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4614,7 +4570,7 @@ libxlDomainGetSchedulerParametersFlags(virDomainPtr d= om, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; libxl_domain_sched_params sc_info; libxl_scheduler sched_id; @@ -4665,7 +4621,6 @@ libxlDomainGetSchedulerParametersFlags(virDomainPtr d= om, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4683,7 +4638,7 @@ libxlDomainSetSchedulerParametersFlags(virDomainPtr d= om, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; libxl_domain_sched_params sc_info; int sched_id; @@ -4749,7 +4704,6 @@ libxlDomainSetSchedulerParametersFlags(virDomainPtr d= om, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4846,7 +4800,7 @@ libxlDomainGetNumaParameters(virDomainPtr dom, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainObjPtr vm; libxl_bitmap nodemap; virBitmapPtr nodes =3D NULL; @@ -4954,7 +4908,6 @@ libxlDomainGetNumaParameters(virDomainPtr dom, virBitmapFree(nodes); libxl_bitmap_dispose(&nodemap); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } #endif @@ -5061,7 +5014,7 @@ libxlDomainGetTotalCPUStats(libxlDriverPrivatePtr dri= ver, virTypedParameterPtr params, unsigned int nparams) { - libxlDriverConfigPtr cfg; + g_autoptr(libxlDriverConfig) cfg =3D NULL; libxl_dominfo d_info; int ret =3D -1; =20 @@ -5086,7 +5039,6 @@ libxlDomainGetTotalCPUStats(libxlDriverPrivatePtr dri= ver, =20 cleanup: libxl_dominfo_dispose(&d_info); - virObjectUnref(cfg); return ret; } =20 @@ -5101,7 +5053,7 @@ libxlDomainGetPerCPUStats(libxlDriverPrivatePtr drive= r, libxl_vcpuinfo *vcpuinfo; int maxcpu, hostcpus; size_t i; - libxlDriverConfigPtr cfg; + g_autoptr(libxlDriverConfig) cfg =3D NULL; int ret =3D -1; =20 if (nparams =3D=3D 0 && ncpus !=3D 0) @@ -5130,7 +5082,6 @@ libxlDomainGetPerCPUStats(libxlDriverPrivatePtr drive= r, cleanup: if (vcpuinfo) libxl_vcpuinfo_list_free(vcpuinfo, maxcpu); - virObjectUnref(cfg); return ret; } =20 @@ -5182,7 +5133,7 @@ libxlDomainMemoryStats(virDomainPtr dom, unsigned int flags) { libxlDriverPrivatePtr driver =3D dom->conn->privateData; - libxlDriverConfigPtr cfg; + g_autoptr(libxlDriverConfig) cfg =3D NULL; virDomainObjPtr vm; libxl_dominfo d_info; unsigned mem, maxmem; @@ -5226,7 +5177,6 @@ libxlDomainMemoryStats(virDomainPtr dom, cleanup: libxl_dominfo_dispose(&d_info); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -6411,7 +6361,7 @@ libxlConnectGetDomainCapabilities(virConnectPtr conn, unsigned int flags) { libxlDriverPrivatePtr driver =3D conn->privateData; - libxlDriverConfigPtr cfg; + g_autoptr(libxlDriverConfig) cfg =3D NULL; char *ret =3D NULL; int virttype =3D VIR_DOMAIN_VIRT_XEN; virDomainCapsPtr domCaps =3D NULL; @@ -6472,7 +6422,6 @@ libxlConnectGetDomainCapabilities(virConnectPtr conn, =20 cleanup: virObjectUnref(domCaps); - virObjectUnref(cfg); return ret; } =20 @@ -6483,7 +6432,7 @@ libxlConnectCompareCPU(virConnectPtr conn, unsigned int flags) { libxlDriverPrivatePtr driver =3D conn->privateData; - libxlDriverConfigPtr cfg; + g_autoptr(libxlDriverConfig) cfg =3D NULL; int ret =3D VIR_CPU_COMPARE_ERROR; bool failIncompatible; =20 @@ -6500,7 +6449,6 @@ libxlConnectCompareCPU(virConnectPtr conn, ret =3D virCPUCompareXML(cfg->caps->host.arch, cfg->caps->host.cpu, xmlDesc, failIncompatible); =20 - virObjectUnref(cfg); return ret; } =20 diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index 11d3070935..50225855ae 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -348,7 +348,7 @@ libxlDoMigrateSrcSend(libxlDriverPrivatePtr driver, unsigned long flags, int sockfd) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); int xl_flags =3D 0; int ret; =20 @@ -363,7 +363,6 @@ libxlDoMigrateSrcSend(libxlDriverPrivatePtr driver, ret =3D -1; } =20 - virObjectUnref(cfg); return ret; } =20 @@ -388,7 +387,7 @@ libxlDomainMigrationSrcBegin(virConnectPtr conn, int *cookieoutlen) { libxlDriverPrivatePtr driver =3D conn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); libxlMigrationCookiePtr mig =3D NULL; virDomainDefPtr tmpdef =3D NULL; virDomainDefPtr def; @@ -438,7 +437,6 @@ libxlDomainMigrationSrcBegin(virConnectPtr conn, cleanup: libxlMigrationCookieFree(mig); virDomainDefFree(tmpdef); - virObjectUnref(cfg); return xml; } =20 @@ -447,7 +445,7 @@ libxlDomainMigrationDstPrepareDef(libxlDriverPrivatePtr= driver, const char *dom_xml, const char *dname) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); virDomainDefPtr def; char *name =3D NULL; =20 @@ -469,7 +467,6 @@ libxlDomainMigrationDstPrepareDef(libxlDriverPrivatePtr= driver, } =20 cleanup: - virObjectUnref(cfg); VIR_FREE(name); return def; } @@ -657,7 +654,7 @@ libxlDomainMigrationDstPrepare(virConnectPtr dconn, unsigned int flags) { libxlDriverPrivatePtr driver =3D dconn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); libxlMigrationCookiePtr mig =3D NULL; virDomainObjPtr vm =3D NULL; char *hostname =3D NULL; @@ -828,7 +825,6 @@ libxlDomainMigrationDstPrepare(virConnectPtr dconn, virURIFree(uri); virObjectUnref(args); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -1156,7 +1152,7 @@ libxlDomainMigrationSrcPerformP2P(libxlDriverPrivateP= tr driver, bool useParams; virConnectPtr dconn =3D NULL; virErrorPtr orig_err =3D NULL; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); =20 virObjectUnlock(vm); dconn =3D virConnectOpenAuth(dconnuri, &virConnectAuthConfig, 0); @@ -1199,7 +1195,6 @@ libxlDomainMigrationSrcPerformP2P(libxlDriverPrivateP= tr driver, virErrorPreserveLast(&orig_err); virObjectUnlock(vm); virObjectUnref(dconn); - virObjectUnref(cfg); virObjectLock(vm); virErrorRestore(&orig_err); return ret; @@ -1276,7 +1271,7 @@ libxlDomainMigrationDstFinish(virConnectPtr dconn, int cancelled) { libxlDriverPrivatePtr driver =3D dconn->privateData; - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); libxlDomainObjPrivatePtr priv =3D vm->privateData; virObjectEventPtr event =3D NULL; virDomainPtr dom =3D NULL; @@ -1366,7 +1361,6 @@ libxlDomainMigrationDstFinish(virConnectPtr dconn, /* EndJob for corresponding BeginJob in prepare phase */ libxlDomainObjEndJob(driver, vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return dom; } =20 @@ -1376,7 +1370,7 @@ libxlDomainMigrationSrcConfirm(libxlDriverPrivatePtr = driver, unsigned int flags, int cancelled) { - libxlDriverConfigPtr cfg =3D libxlDriverConfigGet(driver); + g_autoptr(libxlDriverConfig) cfg =3D libxlDriverConfigGet(driver); libxlDomainObjPrivatePtr priv =3D vm->privateData; virObjectEventPtr event =3D NULL; int ret =3D -1; @@ -1422,6 +1416,5 @@ libxlDomainMigrationSrcConfirm(libxlDriverPrivatePtr = driver, /* EndJob for corresponding BeginJob in begin phase */ libxlDomainObjEndJob(driver, vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } diff --git a/tests/testutilsxen.c b/tests/testutilsxen.c index d680fe36e3..62f01909f7 100644 --- a/tests/testutilsxen.c +++ b/tests/testutilsxen.c @@ -111,7 +111,7 @@ libxlDriverPrivatePtr testXLInitDriver(void) =20 void testXLFreeDriver(libxlDriverPrivatePtr driver) { - virObjectUnref(driver->config); + g_clear_object(&driver->config); g_clear_object(&driver->xmlopt); virMutexDestroy(&driver->lock); g_free(driver); --=20 2.25.3