From nobody Tue Feb 10 00:02:53 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.120 as permitted sender) client-ip=205.139.110.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 205.139.110.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=1585927044; cv=none; d=zohomail.com; s=zohoarc; b=ba//pUpTDOycyj5plo2sTD7j9dY2V1bcUxkUbYj0s7iyOfPaJhWMj9C2FzX2BC4p7AZa08KmKeyNU8MSBzEP0Y57jy20TfulOgcemdRlIwes+I8YuekcQ5RJTHwJxUvxuD85u0mvmowWym5nw45XWGzboCmsHIUdQd4iyl5pKtw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927044; 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=33iNGpVznYpWGoflC3EVinLjiQ6xQblH30AKuuN4aFk=; b=IO0WfHiYlzFVud7us49SluZE+ONIYZcNzF+sf3bzq+spzV0KalWSBGLOa/ecJgxpCOYYD4s6tPv3itJfbOmv2abuWh0FWYZgfBlucgiIp+7Ce8vvNFB1XnymJTWimBUmWvdGx4YKs3VPvyWq1/ENGMOzBfom2r0/8fAs3FHRZAw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.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 [205.139.110.120]) by mx.zohomail.com with SMTPS id 1585927044070406.94981905674285; Fri, 3 Apr 2020 08:17:24 -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-460-bfArtq8ZPAeGTid5ZstPLw-1; Fri, 03 Apr 2020 11:17:20 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5DCA3102CE15; Fri, 3 Apr 2020 15:17:11 +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 2C39060BFB; Fri, 3 Apr 2020 15:17:11 +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 B78DB18034FD; Fri, 3 Apr 2020 15:17:10 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FH96A028433 for ; Fri, 3 Apr 2020 11:17:09 -0400 Received: by smtp.corp.redhat.com (Postfix) id 192C7107504; Fri, 3 Apr 2020 15:17:09 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1583C13CCA7 for ; Fri, 3 Apr 2020 15:17:09 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.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 F0F2180030D for ; Fri, 3 Apr 2020 15:17:08 +0000 (UTC) Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-457-sFXIy_4vNTGhdkKvSFHRvA-1; Fri, 03 Apr 2020 11:17:06 -0400 Received: by mail-wr1-f53.google.com with SMTP id 65so8994460wrl.1 for ; Fri, 03 Apr 2020 08:17:06 -0700 (PDT) Received: from localhost.localdomain (public-gprs375156.centertel.pl. [37.47.96.181]) by smtp.gmail.com with ESMTPSA id p13sm12331045wru.3.2020.04.03.08.17.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:17:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927042; 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=33iNGpVznYpWGoflC3EVinLjiQ6xQblH30AKuuN4aFk=; b=ajaogFJlRbCkLDQEBxdaucWsgxmNHTwfw8DSINMgUJuap+BMxb0V+xmFZyUS6UlLuYkWc2 DGscRBOSvpdVFwqlkoj3Y6JQvqIIu3pHLl4+HscWpt7SoCvvdFTDT7Dy8eSx/zHX07Ptqm 1wy4eEW1uwUh2iHFHTIuhP982eIuVek= X-MC-Unique: bfArtq8ZPAeGTid5ZstPLw-1 X-MC-Unique: sFXIy_4vNTGhdkKvSFHRvA-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=C11G6tfVdxH/jVNFd7RnDzoAMjFs4zZkQqxp/SXkgJc=; b=qvJomGMlDDKacjoAFS97S+CVPvDw3CSLBauM6AfJEHkBdMEnvg8F4sSXXSRYNlTk3z IJMtA6fUfS9+WiaiP79fc3YHJRj3HWn65+xSDnxwnd5AqiayOOVIjzKfMdC2AzDEc4fO ReuKAxHOJPWlwZ2c1SUXok6zCXODZ2KRQpM/LaBylhgQQputcH5OCVFCgEzQEoenqFS8 0hm7Yz8AmYBnZBdf+D36JyVfsTafsfewqi1iX80FHq3Br4BWGtje7Vi91IK7oAMywnvU Gsu+fqvcnnyM5w354qbWdhL6gdT1SQH5rFVAuBklmUfQflbJdptO7VPvyVB1GsaJa81E o/qw== X-Gm-Message-State: AGi0PuaMGGsNAZzhXd9NtOLj1S6gtDEnYD67KWp4Be1r5jRHnZEjjek5 uwOguwg/ybXy3sfPlJgLAwPyP/+RlOo= X-Google-Smtp-Source: APiQypKqQhOt2c+OaNTL0MDYIVBaDdG0XBIhM4W7LLZn8mwVjJhkAvRnQe/4GPiuMInCTN5uA0UZxg== X-Received: by 2002:adf:b35d:: with SMTP id k29mr9771840wrd.239.1585927025166; Fri, 03 Apr 2020 08:17:05 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 33/36] qemu: convert virQEMUDriverConfig to GObject Date: Fri, 3 Apr 2020 17:16:01 +0200 Message-Id: <20200403151604.106616-34-r4f4rfs@gmail.com> In-Reply-To: <20200403151604.106616-1-r4f4rfs@gmail.com> References: <20200403151604.106616-1-r4f4rfs@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FH96A028433 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.79 on 10.5.11.12 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/qemu/qemu_conf.c | 36 ++++++++++++++++++------------------ src/qemu/qemu_conf.h | 19 ++++++++++++------- src/qemu/qemu_driver.c | 3 ++- tests/domaincapstest.c | 3 ++- tests/testutilsqemu.c | 3 ++- 5 files changed, 36 insertions(+), 28 deletions(-) diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 68df8a419a..b0e4ac8ef4 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -68,18 +68,21 @@ VIR_LOG_INIT("qemu.qemu_conf"); #define QEMU_MIGRATION_PORT_MIN 49152 #define QEMU_MIGRATION_PORT_MAX 49215 =20 -static virClassPtr virQEMUDriverConfigClass; -static void virQEMUDriverConfigDispose(void *obj); +G_DEFINE_TYPE(virQEMUDriverConfig, vir_qemu_driver_config, G_TYPE_OBJECT); +static void virQEMUDriverConfigFinalize(GObject *obj); =20 -static int virQEMUConfigOnceInit(void) +static void +vir_qemu_driver_config_init(virQEMUDriverConfig *cfg G_GNUC_UNUSED) { - if (!VIR_CLASS_NEW(virQEMUDriverConfig, virClassForObject())) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(virQEMUConfig); +static void +vir_qemu_driver_config_class_init(virQEMUDriverConfigClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virQEMUDriverConfigFinalize; +} =20 =20 static void @@ -105,13 +108,8 @@ qemuDriverUnlock(virQEMUDriverPtr driver) virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged, const char *root) { - g_autoptr(virQEMUDriverConfig) cfg =3D NULL; - - if (virQEMUConfigInitialize() < 0) - return NULL; - - if (!(cfg =3D virObjectNew(virQEMUDriverConfigClass))) - return NULL; + g_autoptr(virQEMUDriverConfig) cfg =3D + VIR_QEMU_DRIVER_CONFIG(g_object_new(VIR_TYPE_QEMU_DRIVER_CONFIG, N= ULL)); =20 if (root) { cfg->uri =3D g_strdup_printf("qemu:///embed?root=3D%s", root); @@ -294,9 +292,9 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool priv= ileged, } =20 =20 -static void virQEMUDriverConfigDispose(void *obj) +static void virQEMUDriverConfigFinalize(GObject *obj) { - virQEMUDriverConfigPtr cfg =3D obj; + virQEMUDriverConfigPtr cfg =3D VIR_QEMU_DRIVER_CONFIG(obj); =20 virBitmapFree(cfg->namespaces); =20 @@ -370,6 +368,8 @@ static void virQEMUDriverConfigDispose(void *obj) VIR_FREE(cfg->swtpmStorageDir); =20 virStringListFree(cfg->capabilityfilters); + + G_OBJECT_CLASS(vir_qemu_driver_config_parent_class)->finalize(obj); } =20 =20 @@ -1219,7 +1219,7 @@ virQEMUDriverConfigPtr virQEMUDriverGetConfig(virQEMU= DriverPtr driver) { virQEMUDriverConfigPtr conf; qemuDriverLock(driver); - conf =3D virObjectRef(driver->config); + conf =3D g_object_ref(driver->config); qemuDriverUnlock(driver); return conf; } diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h index 14f9b9e81e..e9a60d5628 100644 --- a/src/qemu/qemu_conf.h +++ b/src/qemu/qemu_conf.h @@ -48,15 +48,13 @@ #include "virfile.h" #include "virfilecache.h" #include "virfirmware.h" +#include =20 #define QEMU_DRIVER_NAME "QEMU" =20 typedef struct _virQEMUDriver virQEMUDriver; typedef virQEMUDriver *virQEMUDriverPtr; =20 -typedef struct _virQEMUDriverConfig virQEMUDriverConfig; -typedef virQEMUDriverConfig *virQEMUDriverConfigPtr; - /* Main driver config. The data in these object * instances is immutable, so can be accessed * without locking. Threads must, however, hold @@ -65,15 +63,15 @@ typedef virQEMUDriverConfig *virQEMUDriverConfigPtr; * * eg * qemuDriverLock(driver); - * virQEMUDriverConfigPtr cfg =3D virObjectRef(driver->config); + * virQEMUDriverConfigPtr cfg =3D g_object_ref(driver->config); * qemuDriverUnlock(driver); * * ...do stuff with 'cfg'.. * - * virObjectUnref(cfg); + * g_object_unref(cfg); */ struct _virQEMUDriverConfig { - virObject parent; + GObject parent; =20 char *uri; char *root; /* The root directory for embed driver, @@ -222,7 +220,14 @@ struct _virQEMUDriverConfig { char **capabilityfilters; }; =20 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(virQEMUDriverConfig, virObjectUnref); +#define VIR_TYPE_QEMU_DRIVER_CONFIG vir_qemu_driver_config_get_type() +G_DECLARE_FINAL_TYPE(virQEMUDriverConfig, + vir_qemu_driver_config, + VIR, + QEMU_DRIVER_CONFIG, + GObject); +typedef virQEMUDriverConfig *virQEMUDriverConfigPtr; + =20 =20 /* Main driver state */ diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 630ece6cc6..3e92629d19 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1146,7 +1146,8 @@ qemuStateCleanup(void) if (qemu_driver->lockFD !=3D -1) virPidFileRelease(qemu_driver->config->stateDir, "driver", qemu_dr= iver->lockFD); =20 - virObjectUnref(qemu_driver->config); + if (qemu_driver->config) + g_object_unref(qemu_driver->config); virMutexDestroy(&qemu_driver->lock); VIR_FREE(qemu_driver); =20 diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index d6f0021665..c4440f478b 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -450,7 +450,8 @@ mymain(void) * file has been added, run "VIR_TEST_REGENERATE_OUTPUT=3D1 make check= ". */ =20 - virObjectUnref(cfg); + if (cfg) + g_object_unref(cfg); =20 virFileWrapperClearPrefixes(); =20 diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index a37865bc14..7d27bfa72a 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -307,11 +307,12 @@ void qemuTestDriverFree(virQEMUDriver *driver) virFileDeleteTree(driver->config->configDir); } virObjectUnref(driver->qemuCapsCache); + if (driver->config) + g_object_unref(driver->config); if (driver->xmlopt) g_object_unref(driver->xmlopt); if (driver->caps) g_object_unref(driver->caps); - virObjectUnref(driver->config); virObjectUnref(driver->securityManager); } =20 --=20 2.25.1