From nobody Thu May 16 10:17:16 2024 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=1585927003; cv=none; d=zohomail.com; s=zohoarc; b=cw7zl1shy5jZIdsEE72UNbtl1hg3RISJpma+DP8TymB3I6v8rtxXYn9kp2AecS19cFd/6RVZjDO+9qMJPuSSKfsSVJoqllt57nei6zycDEp2sZo3maHH6VIKOg151GgsEwiUEiDkt0Ha+RMJOEOLb3ghW6sWMByaBbQXa2YkXsM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927003; 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=JkYbH5HqUCJ1/NLyyvpDhssRCX4p83gg4CtbK26EeaQ=; b=HsSENXcZJ6L+rVvrkYhPYXplFJ1EVCkUoR4iC6cK2iLKRP1uhxcmM20/iPE/aj6eZ0LN49BZKcE2iZ7eZdH1BS005SeCO3rZ/49oUVawNrhQOdUB2eSyJcPcRVyffAhNLLL/KKafVmwhmanuOwEBpHQ6NcUDsBZ3zezWN/qNxo0= 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 1585927003223392.54037657435765; Fri, 3 Apr 2020 08:16:43 -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-314-Ww6dAeD-MUOpml_eY9VxvQ-1; Fri, 03 Apr 2020 11:16:39 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5069A18C35A2; Fri, 3 Apr 2020 15:16:33 +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 2BEFE97AE8; Fri, 3 Apr 2020 15:16:33 +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 D76831809567; Fri, 3 Apr 2020 15:16:32 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FGSai028065 for ; Fri, 3 Apr 2020 11:16:28 -0400 Received: by smtp.corp.redhat.com (Postfix) id 434BD2166B2C; Fri, 3 Apr 2020 15:16:28 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3E5412166B32 for ; Fri, 3 Apr 2020 15:16:25 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (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 A7F758007AC for ; Fri, 3 Apr 2020 15:16:25 +0000 (UTC) Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-56-5vdGgC42MuS0WnH8uQWbnQ-1; Fri, 03 Apr 2020 11:16:20 -0400 Received: by mail-wm1-f66.google.com with SMTP id i19so8147124wmb.0 for ; Fri, 03 Apr 2020 08:16:19 -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.16.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927001; 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=JkYbH5HqUCJ1/NLyyvpDhssRCX4p83gg4CtbK26EeaQ=; b=XQGATCej27q17yoouO2VLMF7kOPQqw1BOTBmbFoHC+l0IX8NSGU2SeYZWKL6ToTVbgYOfG t+HTDz0JeQ/nAllCae/QTwmdCrIfDtN6THxYLsi/wDJuZBxMHnBUYZWrgcDDiax855EBqK U5xtO/YkH7fgnUskZrCFXfT4UUfeqKQ= X-MC-Unique: Ww6dAeD-MUOpml_eY9VxvQ-1 X-MC-Unique: 5vdGgC42MuS0WnH8uQWbnQ-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=YIPrJL2qxkaCtg1wLuu21JUfhn4Mo1vNKbW5wz6bc2o=; b=VJ/encW2gZWpp9WGLgZRYiEH+CIl5QrXS25FatbunTK5dLVoY6tBshnKwNS0fEEd60 /Lu0j5K89VmViPGAcDbWf+BukKY3Of2JsX5FLTkn6h9wTuuxd9ATlmO0cxTGle3mnpgs dYhEyTtzAHWLMLAcs0tU08EnT/qGXprap13UC8I/QgLqcElLddWtf76+gjrmQsYwQGdY 4yo7G9QQgLJE+p1Cg3njxmhR5gm6Yfk1oGJ4HLxHi9JX2KhAB6Nnc3okfkcjS2v9Z9ue NDsUA9T3X7ZmeBRQqo7K4E9USqVBX1YQfcCOm4vEl2u0hlMr7i8jo1Ubxe3NjgyRESso IDaQ== X-Gm-Message-State: AGi0PuZxAd2fHHv/HQhbC++hy1G9LewneIQd1LKlq4h/GGqhv1ochblg m9Hx0OEsqtqWrB0RnlzKZiIBB7gYrm0= X-Google-Smtp-Source: APiQypIprhS1ISFCtEvLyEY0B/VHFwpAepqo1W2ECPwDD33QBGtNDOYeT4qk/gy7nT6B8cx484ubSg== X-Received: by 2002:a1c:1942:: with SMTP id 63mr9662201wmz.133.1585926977179; Fri, 03 Apr 2020 08:16:17 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 01/36] util: virresctrl: convert classes to GObject Date: Fri, 3 Apr 2020 17:15:29 +0200 Message-Id: <20200403151604.106616-2-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.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGSai028065 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.13 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/conf/capabilities.c | 3 +- src/conf/domain_conf.c | 21 +++--- src/util/virresctrl.c | 137 ++++++++++++++++++++++------------------ src/util/virresctrl.h | 15 +++-- tests/virresctrltest.c | 3 +- 5 files changed, 97 insertions(+), 82 deletions(-) diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index 99b69aebb5..2c91461a54 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -266,7 +266,8 @@ virCapsDispose(void *object) VIR_FREE(caps->host.netprefix); VIR_FREE(caps->host.pagesSize); virCPUDefFree(caps->host.cpu); - virObjectUnref(caps->host.resctrl); + if (caps->host.resctrl) + g_object_unref(caps->host.resctrl); } =20 /** diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 914e03c705..425a6bccb6 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -3286,7 +3286,8 @@ virDomainResctrlMonDefFree(virDomainResctrlMonDefPtr = domresmon) return; =20 virBitmapFree(domresmon->vcpus); - virObjectUnref(domresmon->instance); + if (domresmon->instance) + g_object_unref(domresmon->instance); VIR_FREE(domresmon); } =20 @@ -3302,7 +3303,8 @@ virDomainResctrlDefFree(virDomainResctrlDefPtr resctr= l) for (i =3D 0; i < resctrl->nmonitors; i++) virDomainResctrlMonDefFree(resctrl->monitors[i]); =20 - virObjectUnref(resctrl->alloc); + if (resctrl->alloc) + g_object_unref(resctrl->alloc); virBitmapFree(resctrl->vcpus); VIR_FREE(resctrl->monitors); VIR_FREE(resctrl); @@ -19887,11 +19889,6 @@ virDomainResctrlMonDefParse(virDomainDefPtr def, domresmon->tag =3D tag; =20 domresmon->instance =3D virResctrlMonitorNew(); - if (!domresmon->instance) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Could not create monitor")); - goto cleanup; - } =20 if (tag =3D=3D VIR_RESCTRL_MONITOR_TYPE_CACHE) { tmp =3D virXMLPropString(nodes[i], "level"); @@ -20001,7 +19998,7 @@ virDomainResctrlNew(xmlNodePtr node, goto cleanup; } =20 - resctrl->alloc =3D virObjectRef(alloc); + resctrl->alloc =3D g_object_ref(alloc); =20 ret =3D g_steal_pointer(&resctrl); cleanup: @@ -20048,8 +20045,7 @@ virDomainCachetuneDefParse(virDomainDefPtr def, return -1; } =20 - if (!(alloc =3D virResctrlAllocNew())) - return -1; + alloc =3D virResctrlAllocNew(); =20 for (i =3D 0; i < n; i++) { if (virDomainCachetuneDefParseCache(ctxt, nodes[i], alloc) < 0) @@ -20234,10 +20230,9 @@ virDomainMemorytuneDefParse(virDomainDefPtr def, return -1; =20 if (resctrl) { - alloc =3D virObjectRef(resctrl->alloc); + alloc =3D g_object_ref(resctrl->alloc); } else { - if (!(alloc =3D virResctrlAllocNew())) - return -1; + alloc =3D virResctrlAllocNew(); } =20 /* First, parse element if any element exists= */ diff --git a/src/util/virresctrl.c b/src/util/virresctrl.c index c537d606cc..d112cc02e4 100644 --- a/src/util/virresctrl.c +++ b/src/util/virresctrl.c @@ -112,12 +112,6 @@ typedef struct _virResctrlAllocMemBW virResctrlAllocMe= mBW; typedef virResctrlAllocMemBW *virResctrlAllocMemBWPtr; =20 =20 -/* Class definitions and initializations */ -static virClassPtr virResctrlInfoClass; -static virClassPtr virResctrlAllocClass; -static virClassPtr virResctrlMonitorClass; - - /* virResctrlInfo */ struct _virResctrlInfoPerType { /* Kernel-provided information */ @@ -182,7 +176,7 @@ struct _virResctrlInfoMongrp { }; =20 struct _virResctrlInfo { - virObject parent; + GObject parent; =20 virResctrlInfoPerLevelPtr *levels; size_t nlevels; @@ -192,14 +186,17 @@ struct _virResctrlInfo { virResctrlInfoMongrpPtr monitor_info; }; =20 +/* Class definitions and initializations */ +G_DEFINE_TYPE(virResctrlInfo, vir_resctrl_info, G_TYPE_OBJECT); + =20 static void -virResctrlInfoDispose(void *obj) +virResctrlInfoFinalize(GObject *obj) { size_t i =3D 0; size_t j =3D 0; =20 - virResctrlInfoPtr resctrl =3D obj; + virResctrlInfoPtr resctrl =3D VIR_RESCTRL_INFO(obj); =20 for (i =3D 0; i < resctrl->nlevels; i++) { virResctrlInfoPerLevelPtr level =3D resctrl->levels[i]; @@ -221,6 +218,8 @@ virResctrlInfoDispose(void *obj) VIR_FREE(resctrl->membw_info); VIR_FREE(resctrl->levels); VIR_FREE(resctrl->monitor_info); + + G_OBJECT_CLASS(vir_resctrl_info_parent_class)->finalize(obj); } =20 =20 @@ -334,7 +333,7 @@ struct _virResctrlAllocMemBW { }; =20 struct _virResctrlAlloc { - virObject parent; + GObject parent; =20 virResctrlAllocPerLevelPtr *levels; size_t nlevels; @@ -355,7 +354,7 @@ struct _virResctrlAlloc { * memory bandwidth. */ struct _virResctrlMonitor { - virObject parent; + GObject parent; =20 /* Each virResctrlMonitor is associated with one specific allocation, * either the root directory allocation under /sys/fs/resctrl or a @@ -372,15 +371,20 @@ struct _virResctrlMonitor { char *path; }; =20 +/* Class definitions and initializations */ +G_DEFINE_TYPE(virResctrlAlloc, vir_resctrl_alloc, G_TYPE_OBJECT); +G_DEFINE_TYPE(virResctrlMonitor, vir_resctrl_monitor, G_TYPE_OBJECT); + + =20 static void -virResctrlAllocDispose(void *obj) +virResctrlAllocFinalize(GObject *obj) { size_t i =3D 0; size_t j =3D 0; size_t k =3D 0; =20 - virResctrlAllocPtr alloc =3D obj; + virResctrlAllocPtr alloc =3D VIR_RESCTRL_ALLOC(obj); =20 for (i =3D 0; i < alloc->nlevels; i++) { virResctrlAllocPerLevelPtr level =3D alloc->levels[i]; @@ -419,38 +423,62 @@ virResctrlAllocDispose(void *obj) VIR_FREE(alloc->id); VIR_FREE(alloc->path); VIR_FREE(alloc->levels); + + G_OBJECT_CLASS(vir_resctrl_alloc_parent_class)->finalize(obj); } =20 =20 static void -virResctrlMonitorDispose(void *obj) +virResctrlMonitorFinalize(GObject *obj) { - virResctrlMonitorPtr monitor =3D obj; + virResctrlMonitorPtr monitor =3D VIR_RESCTRL_MONITOR(obj); =20 - virObjectUnref(monitor->alloc); + if (monitor->alloc) + g_object_unref(monitor->alloc); VIR_FREE(monitor->id); VIR_FREE(monitor->path); + + G_OBJECT_CLASS(vir_resctrl_monitor_parent_class)->finalize(obj); } =20 +static void +vir_resctrl_info_init(virResctrlInfo *resctrlinfo G_GNUC_UNUSED) +{ +} =20 -/* Global initialization for classes */ -static int -virResctrlOnceInit(void) +static void +vir_resctrl_info_class_init(virResctrlInfoClass *klass) { - if (!VIR_CLASS_NEW(virResctrlInfo, virClassForObject())) - return -1; + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 - if (!VIR_CLASS_NEW(virResctrlAlloc, virClassForObject())) - return -1; + obj->finalize =3D virResctrlInfoFinalize; +} =20 - if (!VIR_CLASS_NEW(virResctrlMonitor, virClassForObject())) - return -1; +static void +vir_resctrl_alloc_init(virResctrlAlloc *resctrlalloc G_GNUC_UNUSED) +{ +} =20 - return 0; +static void +vir_resctrl_alloc_class_init(virResctrlAllocClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virResctrlAllocFinalize; +} + +static void +vir_resctrl_monitor_init(virResctrlMonitor *resctrlmon G_GNUC_UNUSED) +{ } =20 -VIR_ONCE_GLOBAL_INIT(virResctrl); +static void +vir_resctrl_monitor_class_init(virResctrlMonitorClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 + obj->finalize =3D virResctrlMonitorFinalize; +} =20 /* Common functions */ static int @@ -793,21 +821,13 @@ virResctrlGetInfo(virResctrlInfoPtr resctrl) virResctrlInfoPtr virResctrlInfoNew(void) { - virResctrlInfoPtr ret =3D NULL; - - if (virResctrlInitialize() < 0) - return NULL; - - ret =3D virObjectNew(virResctrlInfoClass); - if (!ret) - return NULL; + g_autoptr(virResctrlInfo) ret =3D VIR_RESCTRL_INFO(g_object_new(VIR_TY= PE_RESCTRL_INFO, NULL)); =20 if (virResctrlGetInfo(ret) < 0) { - virObjectUnref(ret); return NULL; } =20 - return ret; + return g_steal_pointer(&ret); } =20 =20 @@ -1034,10 +1054,7 @@ virResctrlInfoGetMonitorPrefix(virResctrlInfoPtr res= ctrl, virResctrlAllocPtr virResctrlAllocNew(void) { - if (virResctrlInitialize() < 0) - return NULL; - - return virObjectNew(virResctrlAllocClass); + return VIR_RESCTRL_ALLOC(g_object_new(VIR_TYPE_RESCTRL_ALLOC, NULL)); } =20 =20 @@ -1769,8 +1786,8 @@ virResctrlAllocGetGroup(virResctrlInfoPtr resctrl, =20 error: VIR_FREE(schemata); - virObjectUnref(*alloc); - *alloc =3D NULL; + if (*alloc) + g_clear_object(alloc); return -1; } =20 @@ -1836,9 +1853,6 @@ virResctrlAllocNewFromInfo(virResctrlInfoPtr info) virResctrlAllocPtr ret =3D virResctrlAllocNew(); virBitmapPtr mask =3D NULL; =20 - if (!ret) - return NULL; - for (i =3D 0; i < info->nlevels; i++) { virResctrlInfoPerLevelPtr i_level =3D info->levels[i]; =20 @@ -1884,8 +1898,8 @@ virResctrlAllocNewFromInfo(virResctrlInfoPtr info) virBitmapFree(mask); return ret; error: - virObjectUnref(ret); - ret =3D NULL; + if (ret) + g_clear_object(&ret); goto cleanup; } =20 @@ -1927,7 +1941,8 @@ virResctrlAllocGetUnused(virResctrlInfoPtr resctrl) goto error; =20 virResctrlAllocSubtract(ret, alloc); - virObjectUnref(alloc); + if (alloc) + g_object_unref(alloc); =20 if (virDirOpen(&dirp, SYSFS_RESCTRL_PATH) < 0) goto error; @@ -1948,20 +1963,21 @@ virResctrlAllocGetUnused(virResctrlInfoPtr resctrl) } =20 virResctrlAllocSubtract(ret, alloc); - virObjectUnref(alloc); - alloc =3D NULL; + if (alloc) + g_clear_object(&alloc); } if (rv < 0) goto error; =20 cleanup: - virObjectUnref(alloc); + if (alloc) + g_object_unref(alloc); VIR_DIR_CLOSE(dirp); return ret; =20 error: - virObjectUnref(ret); - ret =3D NULL; + if (ret) + g_clear_object(&ret); goto cleanup; } =20 @@ -2297,8 +2313,10 @@ virResctrlAllocAssign(virResctrlInfoPtr resctrl, =20 ret =3D 0; cleanup: - virObjectUnref(alloc_free); - virObjectUnref(alloc_default); + if (alloc_free) + g_object_unref(alloc_free); + if (alloc_default) + g_object_unref(alloc_default); return ret; } =20 @@ -2506,10 +2524,7 @@ virResctrlAllocRemove(virResctrlAllocPtr alloc) virResctrlMonitorPtr virResctrlMonitorNew(void) { - if (virResctrlInitialize() < 0) - return NULL; - - return virObjectNew(virResctrlMonitorClass); + return VIR_RESCTRL_MONITOR(g_object_new(VIR_TYPE_RESCTRL_MONITOR, NULL= )); } =20 =20 @@ -2623,7 +2638,7 @@ void virResctrlMonitorSetAlloc(virResctrlMonitorPtr monitor, virResctrlAllocPtr alloc) { - monitor->alloc =3D virObjectRef(alloc); + monitor->alloc =3D g_object_ref(alloc); } =20 =20 diff --git a/src/util/virresctrl.h b/src/util/virresctrl.h index dcd9ca2bb2..6724d904d1 100644 --- a/src/util/virresctrl.h +++ b/src/util/virresctrl.h @@ -19,8 +19,8 @@ #pragma once =20 #include "internal.h" +#include =20 -#include "virobject.h" #include "virbitmap.h" #include "virenum.h" =20 @@ -93,7 +93,9 @@ struct _virResctrlInfoMon { unsigned int cache_level; }; =20 -typedef struct _virResctrlInfo virResctrlInfo; +#define VIR_TYPE_RESCTRL_INFO vir_resctrl_info_get_type() +G_DECLARE_FINAL_TYPE(virResctrlInfo, vir_resctrl_info, VIR, RESCTRL_INFO, = GObject); + typedef virResctrlInfo *virResctrlInfoPtr; =20 virResctrlInfoPtr @@ -111,10 +113,11 @@ virResctrlInfoGetMemoryBandwidth(virResctrlInfoPtr re= sctrl, unsigned int level, virResctrlInfoMemBWPerNodePtr control); /* Alloc-related things */ -typedef struct _virResctrlAlloc virResctrlAlloc; +#define VIR_TYPE_RESCTRL_ALLOC vir_resctrl_alloc_get_type() +G_DECLARE_FINAL_TYPE(virResctrlAlloc, vir_resctrl_alloc, VIR, RESCTRL_ALLO= C, GObject); + typedef virResctrlAlloc *virResctrlAllocPtr; =20 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(virResctrlAlloc, virObjectUnref); =20 =20 typedef int virResctrlAllocForeachCacheCallback(unsigned int level, @@ -190,7 +193,9 @@ virResctrlInfoGetMonitorPrefix(virResctrlInfoPtr resctr= l, =20 /* Monitor-related things */ =20 -typedef struct _virResctrlMonitor virResctrlMonitor; +#define VIR_TYPE_RESCTRL_MONITOR vir_resctrl_monitor_get_type() +G_DECLARE_FINAL_TYPE(virResctrlMonitor, vir_resctrl_monitor, VIR, RESCTRL_= MONITOR, GObject); + typedef virResctrlMonitor *virResctrlMonitorPtr; =20 typedef struct _virResctrlMonitorStats virResctrlMonitorStats; diff --git a/tests/virresctrltest.c b/tests/virresctrltest.c index bb6d0fe48e..91baef506d 100644 --- a/tests/virresctrltest.c +++ b/tests/virresctrltest.c @@ -21,7 +21,7 @@ test_virResctrlGetUnused(const void *opaque) char *system_dir =3D NULL; char *resctrl_dir =3D NULL; int ret =3D -1; - virResctrlAllocPtr alloc =3D NULL; + g_autoptr(virResctrlAlloc) alloc =3D NULL; char *schemata_str =3D NULL; char *schemata_file; virCapsPtr caps =3D NULL; @@ -66,7 +66,6 @@ test_virResctrlGetUnused(const void *opaque) ret =3D 0; cleanup: virObjectUnref(caps); - virObjectUnref(alloc); VIR_FREE(system_dir); VIR_FREE(resctrl_dir); VIR_FREE(schemata_str); --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927001; cv=none; d=zohomail.com; s=zohoarc; b=MNjFMHnQRpiFOc6HVBSGtxYbK9AhkV+yU+tg7S9k6lsol3zlKO2hxb2MVmtfiZ2S+OaTJr5SHWyogrkTf2d80OLHG4ShvwM5JDIZZPInMNBqz8ew4K1FjBt/q4lpXbM/suSsK7lN85PzJ8qMKc40BTPymFxrBHKC0pIrJxyw1ig= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927001; 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=bc+s4hNI1Qt3EwCnaH54sk6Xey/L14s8InQmzEDosP0=; b=gebSZkA/4tJXxQlF03uipS5Xi5dIGxjv2HDm3cTFrccHXYwvBwaaDXPdF4QZnDScfLty3Le7NMu1bQ2xfoLPf1ch2QbKD2PrEHKyPw28KcSqzlRsnL1aRKjhdrzxjv4GHP8+UEPEPvHgYNkdN1KLETKL3FuEwSqKctEWwNBVMEc= 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 1585927001182959.6340500744819; Fri, 3 Apr 2020 08:16:41 -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-97-ca0usl7wN-6Cp6cOEUlWTQ-1; Fri, 03 Apr 2020 11:16:37 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 985C4800D6C; Fri, 3 Apr 2020 15:16:30 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 659249B924; Fri, 3 Apr 2020 15:16:30 +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 3DD144E45C; Fri, 3 Apr 2020 15:16:29 +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 033FGR41028060 for ; Fri, 3 Apr 2020 11:16:27 -0400 Received: by smtp.corp.redhat.com (Postfix) id 59F092022EB1; Fri, 3 Apr 2020 15:16:27 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 550A82022EB2 for ; Fri, 3 Apr 2020 15:16:25 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (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 B3169800297 for ; Fri, 3 Apr 2020 15:16:25 +0000 (UTC) Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-362-6nyZkTkfNbqy_VX1-4QQ1Q-1; Fri, 03 Apr 2020 11:16:21 -0400 Received: by mail-wr1-f46.google.com with SMTP id h15so8945349wrx.9 for ; Fri, 03 Apr 2020 08:16:21 -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.16.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585926999; 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=bc+s4hNI1Qt3EwCnaH54sk6Xey/L14s8InQmzEDosP0=; b=hGYPeDLk1gIrMxXstY440/zUdGGHu3T7SUOoxO32O3QnvkcWEQLUoQx3oTBC1Z+LEYXTjC CjDgtxEdx6wFONXt6/lygBLzopVS5rmWDcxE+ZMK3PIoGWb+NS9fMcWemzT5OOl+Q4nUAl R13MWV9EGEpK9vQxLC1PYWJtyXDjv6c= X-MC-Unique: ca0usl7wN-6Cp6cOEUlWTQ-1 X-MC-Unique: 6nyZkTkfNbqy_VX1-4QQ1Q-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=U8oHMnBt6LzaZj1rBdX43uqEZcSTVn/QkJp0e6+gz7s=; b=UBQVmoUOQIKuy0rSIkbnwx63rfFt2fCaPbLlRxEQWNl53NAop4eqYrvVAfoFnk4a3X 5uX4xBPK/LpaAHYQ8ZfBXHthcQEO8k7GIPQphI/TvbY/fHbA3O5NSnWw7BsdU8x/jWuJ mhXi8uE/VoqYpWXqx6VgEC8vzYACn6duCqoowDfbeVkdm2sbmCIu0rvf4UcwbQF4bHsG KduV0aYcEeYb3yEIlovMzRbGNc6rcZbzwH8p1YKrICmkTsdZe4nRLh/p6YV613tO1GBx B8yqG1czgdlXT2aFDTQzGv182nTlFuvNr/IQNDsOAFcdrFrIBb6fSfXLczLxfBnmNuo0 NoLg== X-Gm-Message-State: AGi0PubsGvJTTRNTSaYJWAh17CGoYwz4Kyc5rauOle7rnoHWfmlj0f4l Co9U5CxhfUh4eW/KjwfUxpVKMpwgpvc= X-Google-Smtp-Source: APiQypInIlm3u7fwAg6tKr97uMIkelIn20w4TNZW2Qr8ilHsH+XvB3Q50nb0cyDUzA34WuojacUxnA== X-Received: by 2002:adf:b60d:: with SMTP id f13mr10170848wre.12.1585926978952; Fri, 03 Apr 2020 08:16:18 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 02/36] conf: capabilities: convert virCaps to GOBject Date: Fri, 3 Apr 2020 17:15:30 +0200 Message-Id: <20200403151604.106616-3-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.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGR41028060 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.11 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/bhyve/bhyve_capabilities.c | 16 ++++-------- src/bhyve/bhyve_driver.c | 30 ++++++++-------------- src/conf/capabilities.c | 39 ++++++++++++++-------------- src/conf/capabilities.h | 6 ++--- src/conf/storage_capabilities.c | 5 ++-- src/conf/virconftypes.h | 3 +-- src/esx/esx_driver.c | 25 +++++++----------- src/libxl/libxl_capabilities.c | 19 +++++--------- src/libxl/libxl_conf.c | 3 ++- src/lxc/lxc_conf.c | 16 +++++------- src/lxc/lxc_controller.c | 3 ++- src/lxc/lxc_driver.c | 45 ++++++++++++--------------------- src/lxc/lxc_process.c | 3 ++- src/openvz/openvz_conf.c | 7 +++-- src/qemu/qemu_capabilities.c | 14 +++------- src/qemu/qemu_conf.c | 8 +++--- src/qemu/qemu_driver.c | 3 ++- src/security/virt-aa-helper.c | 8 +++--- src/storage/storage_backend.c | 3 +-- src/test/test_driver.c | 28 +++++++++----------- src/vbox/vbox_common.c | 7 +++-- src/vmware/vmware_conf.c | 12 ++++----- src/vz/vz_driver.c | 27 ++++++++------------ tests/bhyveargv2xmltest.c | 2 +- tests/bhyvexml2argvtest.c | 2 +- tests/bhyvexml2xmltest.c | 2 +- tests/domainconftest.c | 3 ++- tests/genericxml2xmltest.c | 3 ++- tests/openvzutilstest.c | 2 +- tests/qemucaps2xmltest.c | 13 +++------- tests/qemuhotplugtest.c | 6 ++--- tests/testutils.c | 4 +-- tests/testutilslxc.c | 21 +++++++-------- tests/testutilsqemu.c | 11 ++++---- tests/testutilsxen.c | 3 +-- tests/vircaps2xmltest.c | 6 +---- tests/vircapstest.c | 14 +++------- tests/virresctrltest.c | 3 +-- tests/vmx2xmltest.c | 8 ++---- tests/xml2vmxtest.c | 9 +++---- 40 files changed, 177 insertions(+), 265 deletions(-) diff --git a/src/bhyve/bhyve_capabilities.c b/src/bhyve/bhyve_capabilities.c index fb8829d571..66442e50ba 100644 --- a/src/bhyve/bhyve_capabilities.c +++ b/src/bhyve/bhyve_capabilities.c @@ -43,31 +43,25 @@ VIR_LOG_INIT("bhyve.bhyve_capabilities"); virCapsPtr virBhyveCapsBuild(void) { - virCapsPtr caps; + g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest; =20 - if ((caps =3D virCapabilitiesNew(virArchFromHost(), - false, false)) =3D=3D NULL) - return NULL; + caps =3D virCapabilitiesNew(virArchFromHost(), false, false); =20 if ((guest =3D virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_X86_64, "bhyve", NULL, 0, NULL)) =3D=3D NULL) - goto error; + return NULL; =20 if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_BHYVE, NULL, NULL, 0, NULL) =3D=3D NULL) - goto error; + return NULL; =20 if (!(caps->host.cpu =3D virCPUProbeHost(caps->host.arch))) VIR_WARN("Failed to get host CPU"); =20 - return caps; - - error: - virObjectUnref(caps); - return NULL; + return g_steal_pointer(&caps); } =20 int diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index b6204c7fb9..4ca3666700 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -126,22 +126,21 @@ bhyveAutostartDomains(bhyveConnPtr driver) * Get a reference to the virCapsPtr instance for the * driver. * - * The caller must release the reference with virObjetUnref + * The caller must release the reference with g_object_unref * * Returns: a reference to a virCapsPtr instance or NULL */ virCapsPtr ATTRIBUTE_NONNULL(1) bhyveDriverGetCapabilities(bhyveConnPtr driver) { - return virObjectRef(driver->caps); + return g_object_ref(driver->caps); } =20 static char * bhyveConnectGetCapabilities(virConnectPtr conn) { bhyveConnPtr privconn =3D conn->privateData; - virCapsPtr caps; - char *xml =3D NULL; + g_autoptr(virCaps) caps; =20 if (virConnectGetCapabilitiesEnsureACL(conn) < 0) return NULL; @@ -149,15 +148,10 @@ bhyveConnectGetCapabilities(virConnectPtr conn) if (!(caps =3D bhyveDriverGetCapabilities(privconn))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unable to get Capabilities")); - goto cleanup; + return NULL; } =20 - if (!(xml =3D virCapabilitiesFormatXML(caps))) - goto cleanup; - - cleanup: - virObjectUnref(caps); - return xml; + return virCapabilitiesFormatXML(caps); } =20 static virDomainObjPtr @@ -508,7 +502,7 @@ bhyveDomainDefineXMLFlags(virConnectPtr conn, const cha= r *xml, unsigned int flag virDomainDefPtr oldDef =3D NULL; virDomainObjPtr vm =3D NULL; virObjectEventPtr event =3D NULL; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; unsigned int parse_flags =3D VIR_DOMAIN_DEF_PARSE_INACTIVE; =20 virCheckFlags(VIR_DOMAIN_DEFINE_VALIDATE, NULL); @@ -555,7 +549,6 @@ bhyveDomainDefineXMLFlags(virConnectPtr conn, const cha= r *xml, unsigned int flag dom =3D virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id); =20 cleanup: - virObjectUnref(caps); virDomainDefFree(def); virDomainDefFree(oldDef); virDomainObjEndAPI(&vm); @@ -1188,7 +1181,8 @@ bhyveStateCleanup(void) return -1; =20 virObjectUnref(bhyve_driver->domains); - virObjectUnref(bhyve_driver->caps); + if (bhyve_driver->caps) + g_object_unref(bhyve_driver->caps); virObjectUnref(bhyve_driver->xmlopt); virSysinfoDefFree(bhyve_driver->hostsysinfo); virObjectUnref(bhyve_driver->closeCallbacks); @@ -1440,19 +1434,19 @@ bhyveConnectCompareCPU(virConnectPtr conn, { bhyveConnPtr driver =3D conn->privateData; int ret =3D VIR_CPU_COMPARE_ERROR; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; bool failIncompatible; =20 virCheckFlags(VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE, VIR_CPU_COMPARE_ERROR); =20 if (virConnectCompareCPUEnsureACL(conn) < 0) - goto cleanup; + return ret; =20 failIncompatible =3D !!(flags & VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATI= BLE); =20 if (!(caps =3D bhyveDriverGetCapabilities(driver))) - goto cleanup; + return ret; =20 if (!caps->host.cpu || !caps->host.cpu->model) { @@ -1468,8 +1462,6 @@ bhyveConnectCompareCPU(virConnectPtr conn, xmlDesc, failIncompatible); } =20 - cleanup: - virObjectUnref(caps); return ret; } =20 diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c index 2c91461a54..299892fadd 100644 --- a/src/conf/capabilities.c +++ b/src/conf/capabilities.c @@ -54,18 +54,8 @@ VIR_ENUM_IMPL(virCapsHostPMTarget, "suspend_mem", "suspend_disk", "suspend_hybrid", ); =20 -static virClassPtr virCapsClass; -static void virCapsDispose(void *obj); +G_DEFINE_TYPE(virCaps, vir_caps, G_TYPE_OBJECT); =20 -static int virCapabilitiesOnceInit(void) -{ - if (!VIR_CLASS_NEW(virCaps, virClassForObject())) - return -1; - - return 0; -} - -VIR_ONCE_GLOBAL_INIT(virCapabilities); =20 /** * virCapabilitiesNew: @@ -80,13 +70,7 @@ virCapabilitiesNew(virArch hostarch, bool offlineMigrate, bool liveMigrate) { - virCapsPtr caps; - - if (virCapabilitiesInitialize() < 0) - return NULL; - - if (!(caps =3D virObjectNew(virCapsClass))) - return NULL; + virCapsPtr caps =3D VIR_CAPS(g_object_new(VIR_TYPE_CAPS, NULL)); =20 caps->host.arch =3D hostarch; caps->host.offlineMigrate =3D offlineMigrate; @@ -225,9 +209,9 @@ virCapabilitiesClearSecModel(virCapsHostSecModelPtr sec= model) } =20 static void -virCapsDispose(void *object) +virCapsFinalize(GObject *object) { - virCapsPtr caps =3D object; + virCapsPtr caps =3D VIR_CAPS(object); size_t i; =20 for (i =3D 0; i < caps->npools; i++) @@ -268,6 +252,21 @@ virCapsDispose(void *object) virCPUDefFree(caps->host.cpu); if (caps->host.resctrl) g_object_unref(caps->host.resctrl); + + G_OBJECT_CLASS(vir_caps_parent_class)->finalize(object); +} + +static void +vir_caps_init(virCaps *caps G_GNUC_UNUSED) +{ +} + +static void +vir_caps_class_init(virCapsClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virCapsFinalize; } =20 /** diff --git a/src/conf/capabilities.h b/src/conf/capabilities.h index e2581fac8b..b563f79148 100644 --- a/src/conf/capabilities.h +++ b/src/conf/capabilities.h @@ -200,7 +200,7 @@ struct _virCapsStoragePool { =20 =20 struct _virCaps { - virObject parent; + GObject parent; =20 virCapsHost host; size_t nguests; @@ -212,8 +212,8 @@ struct _virCaps { virCapsStoragePoolPtr *pools; }; =20 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(virCaps, virObjectUnref); - +#define VIR_TYPE_CAPS vir_caps_get_type() +G_DECLARE_FINAL_TYPE(virCaps, vir_caps, VIR, CAPS, GObject); =20 struct _virCapsDomainData { int ostype; diff --git a/src/conf/storage_capabilities.c b/src/conf/storage_capabilitie= s.c index 1a3417f90b..bb612e0ec9 100644 --- a/src/conf/storage_capabilities.c +++ b/src/conf/storage_capabilities.c @@ -40,7 +40,8 @@ virStoragePoolCapsDispose(void *obj) virStoragePoolCapsPtr caps =3D obj; VIR_DEBUG("obj=3D%p", caps); =20 - virObjectUnref(caps->driverCaps); + if (caps->driverCaps) + g_object_unref(caps->driverCaps); } =20 =20 @@ -66,7 +67,7 @@ virStoragePoolCapsNew(virCapsPtr driverCaps) if (!(caps =3D virObjectLockableNew(virStoragePoolCapsClass))) return NULL; =20 - caps->driverCaps =3D virObjectRef(driverCaps); + caps->driverCaps =3D g_object_ref(driverCaps); =20 return caps; } diff --git a/src/conf/virconftypes.h b/src/conf/virconftypes.h index 1c62cde251..96df0f9f6f 100644 --- a/src/conf/virconftypes.h +++ b/src/conf/virconftypes.h @@ -27,8 +27,7 @@ typedef struct _virBlkioDevice virBlkioDevice; typedef virBlkioDevice *virBlkioDevicePtr; =20 -typedef struct _virCaps virCaps; -typedef virCaps *virCapsPtr; +typedef struct _virCaps *virCapsPtr; =20 typedef struct _virCapsDomainData virCapsDomainData; typedef virCapsDomainData *virCapsDomainDataPtr; diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index 0ede65279a..f893d112d0 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -69,7 +69,8 @@ esxFreePrivate(esxPrivate **priv) esxVI_Context_Free(&(*priv)->host); esxVI_Context_Free(&(*priv)->vCenter); esxUtil_FreeParsedUri(&(*priv)->parsedUri); - virObjectUnref((*priv)->caps); + if ((*priv)->caps) + g_object_unref((*priv)->caps); virObjectUnref((*priv)->xmlopt); VIR_FREE(*priv); } @@ -540,7 +541,7 @@ static virCapsPtr esxCapsInit(esxPrivate *priv) { esxVI_Boolean supportsLongMode =3D esxSupportsLongMode(priv); - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest =3D NULL; =20 if (supportsLongMode =3D=3D esxVI_Boolean_Undefined) @@ -552,14 +553,11 @@ esxCapsInit(esxPrivate *priv) caps =3D virCapabilitiesNew(VIR_ARCH_I686, true, true); } =20 - if (!caps) - return NULL; - virCapabilitiesAddHostMigrateTransport(caps, "vpxmigr"); =20 =20 if (esxLookupHostSystemBiosUuid(priv, caps->host.host_uuid) < 0) - goto failure; + return NULL; =20 /* i686 */ guest =3D virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, @@ -568,10 +566,10 @@ esxCapsInit(esxPrivate *priv) NULL); =20 if (!guest) - goto failure; + return NULL; =20 if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_VMWARE, NULL= , NULL, 0, NULL)) - goto failure; + return NULL; =20 /* x86_64 */ if (supportsLongMode =3D=3D esxVI_Boolean_True) { @@ -581,18 +579,13 @@ esxCapsInit(esxPrivate *priv) 0, NULL); =20 if (!guest) - goto failure; + return NULL; =20 if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_VMWARE, = NULL, NULL, 0, NULL)) - goto failure; + return NULL; } =20 - return caps; - - failure: - virObjectUnref(caps); - - return NULL; + return g_steal_pointer(&caps); } =20 =20 diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c index beac8c8cfc..4bbe761b3d 100644 --- a/src/libxl/libxl_capabilities.c +++ b/src/libxl/libxl_capabilities.c @@ -704,29 +704,24 @@ libxlMakeDomainDeviceHostdevCaps(virDomainCapsDeviceH= ostdevPtr dev) virCapsPtr libxlMakeCapabilities(libxl_ctx *ctx) { - virCapsPtr caps; + g_autoptr(virCaps) caps =3D NULL; =20 #ifdef LIBXL_HAVE_NO_SUSPEND_RESUME - if ((caps =3D virCapabilitiesNew(virArchFromHost(), false, false)) =3D= =3D NULL) + caps =3D virCapabilitiesNew(virArchFromHost(), false, false); #else - if ((caps =3D virCapabilitiesNew(virArchFromHost(), true, true)) =3D= =3D NULL) + caps =3D virCapabilitiesNew(virArchFromHost(), true, true); #endif - return NULL; =20 if (libxlCapsInitHost(ctx, caps) < 0) - goto error; + return NULL; =20 if (libxlCapsInitNuma(ctx, caps) < 0) - goto error; + return NULL; =20 if (libxlCapsInitGuests(ctx, caps) < 0) - goto error; - - return caps; + return NULL; =20 - error: - virObjectUnref(caps); - return NULL; + return g_steal_pointer(&caps); } =20 /* diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index be5fc505fe..21089c33d7 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -70,7 +70,8 @@ libxlDriverConfigDispose(void *obj) { libxlDriverConfigPtr cfg =3D obj; =20 - virObjectUnref(cfg->caps); + if (cfg->caps) + g_object_unref(cfg->caps); libxl_ctx_free(cfg->ctx); if (cfg->logger) libxlLoggerFree(cfg->logger); diff --git a/src/lxc/lxc_conf.c b/src/lxc/lxc_conf.c index 8469f30b9e..cfb80eaf22 100644 --- a/src/lxc/lxc_conf.c +++ b/src/lxc/lxc_conf.c @@ -59,14 +59,12 @@ VIR_ONCE_GLOBAL_INIT(virLXCConfig); /* Functions */ virCapsPtr virLXCDriverCapsInit(virLXCDriverPtr driver) { - virCapsPtr caps; + g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest; virArch altArch; char *lxc_path =3D NULL; =20 - if ((caps =3D virCapabilitiesNew(virArchFromHost(), - false, false)) =3D=3D NULL) - goto error; + caps =3D virCapabilitiesNew(virArchFromHost(), false, false); =20 /* Some machines have problematic NUMA topology causing * unexpected failures. We don't want to break the lxc @@ -164,11 +162,10 @@ virCapsPtr virLXCDriverCapsInit(virLXCDriverPtr drive= r) VIR_INFO("No driver, not initializing security driver"); } =20 - return caps; + return g_steal_pointer(&caps); =20 error: VIR_FREE(lxc_path); - virObjectUnref(caps); return NULL; } =20 @@ -180,7 +177,7 @@ virCapsPtr virLXCDriverCapsInit(virLXCDriverPtr driver) * driver. If @refresh is true, the capabilities will be * rebuilt first * - * The caller must release the reference with virObjetUnref + * The caller must release the reference with g_object_unref * * Returns: a reference to a virCapsPtr instance or NULL */ @@ -194,7 +191,8 @@ virCapsPtr virLXCDriverGetCapabilities(virLXCDriverPtr = driver, return NULL; =20 lxcDriverLock(driver); - virObjectUnref(driver->caps); + if (driver->caps) + g_object_unref(driver->caps); driver->caps =3D caps; } else { lxcDriverLock(driver); @@ -207,7 +205,7 @@ virCapsPtr virLXCDriverGetCapabilities(virLXCDriverPtr = driver, } } =20 - ret =3D virObjectRef(driver->caps); + ret =3D g_object_ref(driver->caps); lxcDriverUnlock(driver); return ret; } diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c index 453b435dd6..3d3258eabe 100644 --- a/src/lxc/lxc_controller.c +++ b/src/lxc/lxc_controller.c @@ -181,7 +181,8 @@ virLXCControllerDriverFree(virLXCDriverPtr driver) if (!driver) return; virObjectUnref(driver->xmlopt); - virObjectUnref(driver->caps); + if (driver->caps) + g_object_unref(driver->caps); virMutexDestroy(&driver->lock); g_free(driver); } diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 851894c459..1c59ddef6d 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -197,8 +197,7 @@ static int lxcConnectIsAlive(virConnectPtr conn G_GNUC_= UNUSED) =20 static char *lxcConnectGetCapabilities(virConnectPtr conn) { virLXCDriverPtr driver =3D conn->privateData; - virCapsPtr caps; - char *xml; + g_autoptr(virCaps) caps =3D NULL; =20 if (virConnectGetCapabilitiesEnsureACL(conn) < 0) return NULL; @@ -206,10 +205,7 @@ static char *lxcConnectGetCapabilities(virConnectPtr c= onn) { if (!(caps =3D virLXCDriverGetCapabilities(driver, true))) return NULL; =20 - xml =3D virCapabilitiesFormatXML(caps); - - virObjectUnref(caps); - return xml; + return virCapabilitiesFormatXML(caps); } =20 =20 @@ -405,7 +401,7 @@ lxcDomainDefineXMLFlags(virConnectPtr conn, const char = *xml, unsigned int flags) virObjectEventPtr event =3D NULL; virDomainDefPtr oldDef =3D NULL; virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; unsigned int parse_flags =3D VIR_DOMAIN_DEF_PARSE_INACTIVE; =20 virCheckFlags(VIR_DOMAIN_DEFINE_VALIDATE, NULL); @@ -462,7 +458,6 @@ lxcDomainDefineXMLFlags(virConnectPtr conn, const char = *xml, unsigned int flags) virDomainDefFree(oldDef); virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(caps); virObjectUnref(cfg); return dom; } @@ -940,7 +935,7 @@ static char *lxcConnectDomainXMLFromNative(virConnectPt= r conn, char *xml =3D NULL; virDomainDefPtr def =3D NULL; virLXCDriverPtr driver =3D conn->privateData; - virCapsPtr caps =3D virLXCDriverGetCapabilities(driver, false); + g_autoptr(virCaps) caps =3D virLXCDriverGetCapabilities(driver, false); =20 virCheckFlags(0, NULL); =20 @@ -959,7 +954,6 @@ static char *lxcConnectDomainXMLFromNative(virConnectPt= r conn, xml =3D virDomainDefFormat(def, driver->xmlopt, 0); =20 cleanup: - virObjectUnref(caps); virDomainDefFree(def); return xml; } @@ -1086,7 +1080,7 @@ lxcDomainCreateXMLWithFiles(virConnectPtr conn, virDomainPtr dom =3D NULL; virObjectEventPtr event =3D NULL; virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; unsigned int parse_flags =3D VIR_DOMAIN_DEF_PARSE_INACTIVE; =20 virCheckFlags(VIR_DOMAIN_START_AUTODESTROY | @@ -1156,7 +1150,6 @@ lxcDomainCreateXMLWithFiles(virConnectPtr conn, virDomainDefFree(def); virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(caps); virObjectUnref(cfg); virNWFilterUnlockFilterUpdates(); return dom; @@ -1235,29 +1228,27 @@ static int lxcNodeGetSecurityModel(virConnectPtr co= nn, virSecurityModelPtr secmodel) { virLXCDriverPtr driver =3D conn->privateData; - virCapsPtr caps =3D NULL; - int ret =3D 0; + g_autoptr(virCaps) caps =3D NULL; =20 memset(secmodel, 0, sizeof(*secmodel)); =20 if (virNodeGetSecurityModelEnsureACL(conn) < 0) - goto cleanup; + return 0; =20 if (!(caps =3D virLXCDriverGetCapabilities(driver, false))) - goto cleanup; + return 0; =20 /* we treat no driver as success, but simply return no data in *secmod= el */ if (caps->host.nsecModels =3D=3D 0 || caps->host.secModels[0].model =3D=3D NULL) - goto cleanup; + return 0; =20 if (virStrcpy(secmodel->model, caps->host.secModels[0].model, VIR_SECURITY_MODEL_BUFLEN) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("security model string exceeds max %d bytes"), VIR_SECURITY_MODEL_BUFLEN - 1); - ret =3D -1; - goto cleanup; + return -1; } =20 if (virStrcpy(secmodel->doi, caps->host.secModels[0].doi, @@ -1265,13 +1256,10 @@ static int lxcNodeGetSecurityModel(virConnectPtr co= nn, virReportError(VIR_ERR_INTERNAL_ERROR, _("security DOI string exceeds max %d bytes"), VIR_SECURITY_DOI_BUFLEN-1); - ret =3D -1; - goto cleanup; + return -1; } =20 - cleanup: - virObjectUnref(caps); - return ret; + return 0; } =20 =20 @@ -1623,7 +1611,8 @@ static int lxcStateCleanup(void) virSysinfoDefFree(lxc_driver->hostsysinfo); =20 virObjectUnref(lxc_driver->hostdevMgr); - virObjectUnref(lxc_driver->caps); + if (lxc_driver->caps) + g_object_unref(lxc_driver->caps); virObjectUnref(lxc_driver->securityManager); virObjectUnref(lxc_driver->xmlopt); =20 @@ -1802,7 +1791,7 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom, unsigned int flags) { virLXCDriverPtr driver =3D dom->conn->privateData; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; size_t i; virDomainObjPtr vm =3D NULL; virDomainDefPtr def =3D NULL; @@ -1924,7 +1913,6 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom, cleanup: virDomainDefFree(persistentDefCopy); virDomainObjEndAPI(&vm); - virObjectUnref(caps); virObjectUnref(cfg); return ret; } @@ -4477,7 +4465,7 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr do= m, unsigned int flags) { virLXCDriverPtr driver =3D dom->conn->privateData; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; virDomainObjPtr vm =3D NULL; virDomainDefPtr vmdef =3D NULL; virDomainDeviceDefPtr dev =3D NULL, dev_copy =3D NULL; @@ -4563,7 +4551,6 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr do= m, virDomainDeviceDefFree(dev_copy); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(caps); virObjectUnref(cfg); return ret; } diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c index 5199f3806e..699accc633 100644 --- a/src/lxc/lxc_process.c +++ b/src/lxc/lxc_process.c @@ -1565,7 +1565,8 @@ int virLXCProcessStart(virConnectPtr conn, VIR_FREE(pidfile); VIR_FREE(logfile); virObjectUnref(cfg); - virObjectUnref(caps); + if (caps) + g_object_unref(caps); =20 virErrorRestore(&err); =20 diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c index 78547b8b28..1f70bfc3d9 100644 --- a/src/openvz/openvz_conf.c +++ b/src/openvz/openvz_conf.c @@ -151,9 +151,7 @@ virCapsPtr openvzCapsInit(void) g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest; =20 - if ((caps =3D virCapabilitiesNew(virArchFromHost(), - false, false)) =3D=3D NULL) - return NULL; + caps =3D virCapabilitiesNew(virArchFromHost(), false, false); =20 if (!(caps->host.numa =3D virCapabilitiesHostNUMANewHost())) return NULL; @@ -483,7 +481,8 @@ openvzFreeDriver(struct openvz_driver *driver) =20 virObjectUnref(driver->xmlopt); virObjectUnref(driver->domains); - virObjectUnref(driver->caps); + if (driver->caps) + g_object_unref(driver->caps); VIR_FREE(driver); } =20 diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 73a8856f34..4bbd14f7ad 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1062,13 +1062,11 @@ virQEMUCapsProbeHostCPU(virArch hostArch, virCapsPtr virQEMUCapsInit(virFileCachePtr cache) { - virCapsPtr caps; + g_autoptr(virCaps) caps =3D NULL; size_t i; virArch hostarch =3D virArchFromHost(); =20 - if ((caps =3D virCapabilitiesNew(hostarch, - true, true)) =3D=3D NULL) - goto error; + caps =3D virCapabilitiesNew(hostarch, true, true); =20 if (virCapabilitiesInitCaches(caps) < 0) VIR_WARN("Failed to get host CPU cache info"); @@ -1096,13 +1094,9 @@ virQEMUCapsInit(virFileCachePtr cache) if (virQEMUCapsInitGuest(caps, cache, hostarch, i) < 0) - goto error; - - return caps; + return NULL; =20 - error: - virObjectUnref(caps); - return NULL; + return g_steal_pointer(&caps); } =20 =20 diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 15837cece4..68df8a419a 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -1350,7 +1350,7 @@ virCapsPtr virQEMUDriverCreateCapabilities(virQEMUDri= verPtr driver) * driver. If @refresh is true, the capabilities will be * rebuilt first * - * The caller must release the reference with virObjetUnref + * The caller must release the reference with g_object_unref * * Returns: a reference to a virCapsPtr instance or NULL */ @@ -1364,7 +1364,8 @@ virCapsPtr virQEMUDriverGetCapabilities(virQEMUDriver= Ptr driver, return NULL; =20 qemuDriverLock(driver); - virObjectUnref(driver->caps); + if (driver->caps) + g_object_unref(driver->caps); driver->caps =3D caps; } else { qemuDriverLock(driver); @@ -1378,7 +1379,8 @@ virCapsPtr virQEMUDriverGetCapabilities(virQEMUDriver= Ptr driver, } } =20 - ret =3D virObjectRef(driver->caps); + if (driver->caps) + ret =3D g_object_ref(driver->caps); qemuDriverUnlock(driver); return ret; } diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index daa3cb397d..99a5058033 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1134,7 +1134,8 @@ qemuStateCleanup(void) virObjectUnref(qemu_driver->xmlopt); virCPUDefFree(qemu_driver->hostcpu); virCapabilitiesHostNUMAUnref(qemu_driver->hostnuma); - virObjectUnref(qemu_driver->caps); + if (qemu_driver->caps) + g_object_unref(qemu_driver->caps); ebtablesContextFree(qemu_driver->ebtables); VIR_FREE(qemu_driver->qemuImgBinary); virObjectUnref(qemu_driver->domains); diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c index 8526b7b985..7b0ae6acad 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -79,7 +79,8 @@ vahDeinit(vahControl * ctl) return -1; =20 VIR_FREE(ctl->def); - virObjectUnref(ctl->caps); + if (ctl->caps) + g_object_unref(ctl->caps); virObjectUnref(ctl->xmlopt); VIR_FREE(ctl->files); VIR_FREE(ctl->virtType); @@ -632,10 +633,7 @@ get_definition(vahControl * ctl, const char *xmlStr) if (caps_mockup(ctl, xmlStr) !=3D 0) return -1; =20 - if ((ctl->caps =3D virCapabilitiesNew(ctl->arch, true, true)) =3D=3D N= ULL) { - vah_error(ctl, 0, _("could not allocate memory")); - return -1; - } + ctl->caps =3D virCapabilitiesNew(ctl->arch, true, true); =20 if (!(ctl->xmlopt =3D virDomainXMLOptionNew(&virAAHelperDomainDefParse= rConfig, NULL, NULL, NULL, NULL))) { diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c index e9f6663e6d..cb573c4945 100644 --- a/src/storage/storage_backend.c +++ b/src/storage/storage_backend.c @@ -190,8 +190,7 @@ virStorageBackendGetCapabilities(void) virCapsPtr caps; size_t i; =20 - if (!(caps =3D virCapabilitiesNew(VIR_ARCH_NONE, false, false))) - return NULL; + caps =3D virCapabilitiesNew(VIR_ARCH_NONE, false, false); =20 for (i =3D 0; i < virStorageBackendsCount; i++) virCapabilitiesAddStoragePool(caps, virStorageBackends[i]->type); diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 7759847c2d..00c3d34a81 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -158,7 +158,8 @@ testDriverDispose(void *obj) testDriverPtr driver =3D obj; size_t i; =20 - virObjectUnref(driver->caps); + if (driver->caps) + g_object_unref(driver->caps); virObjectUnref(driver->xmlopt); virObjectUnref(driver->domains); virNodeDeviceObjListFree(driver->devs); @@ -284,24 +285,23 @@ static virCapsPtr testBuildCapabilities(virConnectPtr conn) { testDriverPtr privconn =3D conn->privateData; - virCapsPtr caps; + g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest; int guest_types[] =3D { VIR_DOMAIN_OSTYPE_HVM, VIR_DOMAIN_OSTYPE_XEN }; size_t i, j; =20 - if ((caps =3D virCapabilitiesNew(VIR_ARCH_I686, false, false)) =3D=3D = NULL) - goto error; + caps =3D virCapabilitiesNew(VIR_ARCH_I686, false, false); =20 if (virCapabilitiesAddHostFeature(caps, "pae") < 0) - goto error; + return NULL; if (virCapabilitiesAddHostFeature(caps, "nonpae") < 0) - goto error; + return NULL; =20 virCapabilitiesHostInitIOMMU(caps); =20 if (VIR_ALLOC_N(caps->host.pagesSize, 4) < 0) - goto error; + return NULL; =20 caps->host.pagesSize[caps->host.nPagesSize++] =3D 4; caps->host.pagesSize[caps->host.nPagesSize++] =3D 8; @@ -317,7 +317,7 @@ testBuildCapabilities(virConnectPtr conn) if (VIR_ALLOC_N(cpu_cells, privconn->cells[i].numCpus) < 0 || VIR_ALLOC_N(pages, nPages) < 0) { VIR_FREE(cpu_cells); - goto error; + return NULL; } =20 memcpy(cpu_cells, privconn->cells[i].cpus, @@ -347,7 +347,7 @@ testBuildCapabilities(virConnectPtr conn) NULL, 0, NULL)) =3D=3D NULL) - goto error; + return NULL; =20 if (virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_TEST, @@ -355,7 +355,7 @@ testBuildCapabilities(virConnectPtr conn) NULL, 0, NULL) =3D=3D NULL) - goto error; + return NULL; =20 virCapabilitiesAddGuestFeature(guest, VIR_CAPS_GUEST_FEATURE_TYPE_= PAE); virCapabilitiesAddGuestFeature(guest, VIR_CAPS_GUEST_FEATURE_TYPE_= NONPAE); @@ -363,16 +363,12 @@ testBuildCapabilities(virConnectPtr conn) =20 caps->host.nsecModels =3D 1; if (VIR_ALLOC_N(caps->host.secModels, caps->host.nsecModels) < 0) - goto error; + return NULL; caps->host.secModels[0].model =3D g_strdup("testSecurity"); =20 caps->host.secModels[0].doi =3D g_strdup(""); =20 - return caps; - - error: - virObjectUnref(caps); - return NULL; + return g_steal_pointer(&caps); } =20 =20 diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index e98ae04ec0..0e009a5739 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -89,9 +89,7 @@ vboxCapsInit(void) g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest =3D NULL; =20 - if ((caps =3D virCapabilitiesNew(virArchFromHost(), - false, false)) =3D=3D NULL) - return NULL; + caps =3D virCapabilitiesNew(virArchFromHost(), false, false); =20 if (!(caps->host.numa =3D virCapabilitiesHostNUMANewHost())) return NULL; @@ -124,7 +122,8 @@ vboxDriverDispose(void *obj) { vboxDriverPtr driver =3D obj; =20 - virObjectUnref(driver->caps); + if (driver->caps) + g_object_unref(driver->caps); virObjectUnref(driver->xmlopt); } =20 diff --git a/src/vmware/vmware_conf.c b/src/vmware/vmware_conf.c index fd62bb96f7..ee21e96971 100644 --- a/src/vmware/vmware_conf.c +++ b/src/vmware/vmware_conf.c @@ -54,7 +54,8 @@ vmwareFreeDriver(struct vmware_driver *driver) =20 virMutexDestroy(&driver->lock); virObjectUnref(driver->domains); - virObjectUnref(driver->caps); + if (driver->caps) + g_object_unref(driver->caps); virObjectUnref(driver->xmlopt); VIR_FREE(driver->vmrun); VIR_FREE(driver); @@ -64,12 +65,10 @@ vmwareFreeDriver(struct vmware_driver *driver) virCapsPtr vmwareCapsInit(void) { - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest =3D NULL; =20 - if ((caps =3D virCapabilitiesNew(virArchFromHost(), - false, false)) =3D=3D NULL) - goto error; + caps =3D virCapabilitiesNew(virArchFromHost(), false, false); =20 if (!(caps->host.numa =3D virCapabilitiesHostNUMANewHost())) goto error; @@ -116,11 +115,10 @@ vmwareCapsInit(void) guest =3D NULL; } =20 - return caps; + return g_steal_pointer(&caps); =20 error: virCapabilitiesFreeGuest(guest); - virObjectUnref(caps); return NULL; } =20 diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index d882b91def..517259131d 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -98,7 +98,7 @@ vzCapsAddGuestDomain(virCapsPtr caps, static virCapsPtr vzBuildCapabilities(void) { - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; virNodeInfo nodeinfo; virDomainOSType ostypes[] =3D { VIR_DOMAIN_OSTYPE_HVM, @@ -112,15 +112,13 @@ vzBuildCapabilities(void) }; size_t i, j, k; =20 - if ((caps =3D virCapabilitiesNew(virArchFromHost(), - false, false)) =3D=3D NULL) - return NULL; + caps =3D virCapabilitiesNew(virArchFromHost(), false, false); =20 if (!(caps->host.numa =3D virCapabilitiesHostNUMANewHost())) - goto error; + return NULL; =20 if (virCapabilitiesInitCaches(caps) < 0) - goto error; + return NULL; =20 G_STATIC_ASSERT(G_N_ELEMENTS(archs) =3D=3D G_N_ELEMENTS(emulators)); =20 @@ -129,23 +127,19 @@ vzBuildCapabilities(void) for (k =3D 0; k < G_N_ELEMENTS(emulators); k++) if (vzCapsAddGuestDomain(caps, ostypes[i], archs[j], emulators[k], virt_types[k]) < 0) - goto error; + return NULL; =20 if (virCapabilitiesGetNodeInfo(&nodeinfo)) - goto error; + return NULL; =20 if (!(caps->host.cpu =3D virCPUGetHost(caps->host.arch, VIR_CPU_TYPE_H= OST, &nodeinfo, NULL))) - goto error; + return NULL; =20 if (virCapabilitiesAddHostMigrateTransport(caps, "vzmigr") < 0) - goto error; - - return caps; + return NULL; =20 - error: - virObjectUnref(caps); - return NULL; + return g_steal_pointer(&caps); } =20 static void vzDriverDispose(void * obj) @@ -154,7 +148,8 @@ static void vzDriverDispose(void * obj) =20 prlsdkDisconnect(driver); virObjectUnref(driver->domains); - virObjectUnref(driver->caps); + if (driver->caps) + g_object_unref(driver->caps); virObjectUnref(driver->xmlopt); virObjectUnref(driver->domainEventState); virSysinfoDefFree(driver->hostsysinfo); diff --git a/tests/bhyveargv2xmltest.c b/tests/bhyveargv2xmltest.c index 735cc4b338..5de5b48a8e 100644 --- a/tests/bhyveargv2xmltest.c +++ b/tests/bhyveargv2xmltest.c @@ -195,7 +195,7 @@ mymain(void) DO_TEST("bhyveload-bootorder"); DO_TEST_FAIL("extraargs"); =20 - virObjectUnref(driver.caps); + g_object_unref(driver.caps); virObjectUnref(driver.xmlopt); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c index 9e7eb218b8..9ea0d76f06 100644 --- a/tests/bhyvexml2argvtest.c +++ b/tests/bhyvexml2argvtest.c @@ -249,7 +249,7 @@ mymain(void) driver.bhyvecaps &=3D ~BHYVE_CAP_CPUTOPOLOGY; DO_TEST_FAILURE("cputopology"); =20 - virObjectUnref(driver.caps); + g_object_unref(driver.caps); virObjectUnref(driver.xmlopt); virPortAllocatorRangeFree(driver.remotePorts); =20 diff --git a/tests/bhyvexml2xmltest.c b/tests/bhyvexml2xmltest.c index a0c20a14c1..cb0f6022c3 100644 --- a/tests/bhyvexml2xmltest.c +++ b/tests/bhyvexml2xmltest.c @@ -127,7 +127,7 @@ mymain(void) /* USB xhci tablet */ DO_TEST_DIFFERENT("input-xhci-tablet"); =20 - virObjectUnref(driver.caps); + g_object_unref(driver.caps); virObjectUnref(driver.xmlopt); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/tests/domainconftest.c b/tests/domainconftest.c index 754ef2eb3d..ada397b925 100644 --- a/tests/domainconftest.c +++ b/tests/domainconftest.c @@ -103,7 +103,8 @@ mymain(void) DO_TEST_GET_FS("/dev/pts", false); DO_TEST_GET_FS("/doesnotexist", false); =20 - virObjectUnref(caps); + if (caps) + g_object_unref(caps); virObjectUnref(xmlopt); =20 cleanup: diff --git a/tests/genericxml2xmltest.c b/tests/genericxml2xmltest.c index 501bcdb0a1..0659ca1b28 100644 --- a/tests/genericxml2xmltest.c +++ b/tests/genericxml2xmltest.c @@ -195,7 +195,8 @@ mymain(void) DO_TEST_BACKUP("backup-push"); DO_TEST_BACKUP("backup-push-seclabel"); =20 - virObjectUnref(caps); + if (caps) + g_object_unref(caps); virObjectUnref(xmlopt); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/tests/openvzutilstest.c b/tests/openvzutilstest.c index 2b1a9fb5ce..48de2d1c7d 100644 --- a/tests/openvzutilstest.c +++ b/tests/openvzutilstest.c @@ -132,7 +132,7 @@ testReadNetworkConf(const void *data G_GNUC_UNUSED) =20 cleanup: virObjectUnref(driver.xmlopt); - virObjectUnref(driver.caps); + g_object_unref(driver.caps); VIR_FREE(actual); virDomainDefFree(def); =20 diff --git a/tests/qemucaps2xmltest.c b/tests/qemucaps2xmltest.c index 7a5125fea6..349af0e431 100644 --- a/tests/qemucaps2xmltest.c +++ b/tests/qemucaps2xmltest.c @@ -99,7 +99,7 @@ static virCapsPtr testGetCaps(char *capsData, const testQemuData *data) { virQEMUCapsPtr qemuCaps =3D NULL; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; virArch arch =3D virArchFromString(data->archName); g_autofree char *binary =3D NULL; =20 @@ -110,10 +110,7 @@ testGetCaps(char *capsData, const testQemuData *data) goto error; } =20 - if ((caps =3D virCapabilitiesNew(arch, false, false)) =3D=3D NULL) { - fprintf(stderr, "failed to create the fake capabilities"); - goto error; - } + caps =3D virCapabilitiesNew(arch, false, false); =20 if (virQEMUCapsInitGuestFromBinary(caps, binary, @@ -124,11 +121,10 @@ testGetCaps(char *capsData, const testQemuData *data) } =20 virObjectUnref(qemuCaps); - return caps; + return g_steal_pointer(&caps); =20 error: virObjectUnref(qemuCaps); - virObjectUnref(caps); return NULL; } =20 @@ -140,7 +136,7 @@ testQemuCapsXML(const void *opaque) char *capsFile =3D NULL, *xmlFile =3D NULL; char *capsData =3D NULL; char *capsXml =3D NULL; - virCapsPtr capsProvided =3D NULL; + g_autoptr(virCaps) capsProvided =3D NULL; =20 xmlFile =3D g_strdup_printf("%s/caps.%s.xml", data->outputDir, data->a= rchName); =20 @@ -167,7 +163,6 @@ testQemuCapsXML(const void *opaque) VIR_FREE(capsFile); VIR_FREE(capsXml); VIR_FREE(capsData); - virObjectUnref(capsProvided); return ret; } =20 diff --git a/tests/qemuhotplugtest.c b/tests/qemuhotplugtest.c index d9244dca44..b7ba016306 100644 --- a/tests/qemuhotplugtest.c +++ b/tests/qemuhotplugtest.c @@ -245,7 +245,7 @@ testQemuHotplug(const void *data) unsigned int device_parse_flags =3D 0; virDomainObjPtr vm =3D NULL; virDomainDeviceDefPtr dev =3D NULL; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; qemuMonitorTestPtr test_mon =3D NULL; qemuDomainObjPrivatePtr priv =3D NULL; =20 @@ -356,7 +356,6 @@ testQemuHotplug(const void *data) test->vm =3D NULL; } virDomainDeviceDefFree(dev); - virObjectUnref(caps); qemuMonitorTestFree(test_mon); return ((ret < 0 && fail) || (!ret && !fail)) ? 0 : -1; } @@ -412,7 +411,7 @@ testQemuHotplugCpuPrepare(const char *test, virHashTablePtr qmpschema) { qemuDomainObjPrivatePtr priv =3D NULL; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; char *prefix =3D NULL; struct testQemuHotplugCpuData *data =3D NULL; =20 @@ -464,7 +463,6 @@ testQemuHotplugCpuPrepare(const char *test, return data; =20 error: - virObjectUnref(caps); testQemuHotplugCpuDataFree(data); VIR_FREE(prefix); return NULL; diff --git a/tests/testutils.c b/tests/testutils.c index 5fd81b70a2..5383df083d 100644 --- a/tests/testutils.c +++ b/tests/testutils.c @@ -909,9 +909,7 @@ virCapsPtr virTestGenericCapsInit(void) g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest; =20 - if ((caps =3D virCapabilitiesNew(VIR_ARCH_X86_64, - false, false)) =3D=3D NULL) - return NULL; + caps =3D virCapabilitiesNew(VIR_ARCH_X86_64, false, false); =20 if ((guest =3D virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, VI= R_ARCH_I686, "/usr/bin/acme-virt", NULL, diff --git a/tests/testutilslxc.c b/tests/testutilslxc.c index b5e2f542e7..2f28975332 100644 --- a/tests/testutilslxc.c +++ b/tests/testutilslxc.c @@ -11,7 +11,7 @@ virCapsPtr testLXCCapsInit(void) { - virCapsPtr caps; + g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest; =20 if ((caps =3D virCapabilitiesNew(VIR_ARCH_X86_64, @@ -22,20 +22,20 @@ testLXCCapsInit(void) VIR_ARCH_I686, "/usr/libexec/libvirt_lxc", NULL, 0, NULL)) =3D=3D NULL) - goto error; + return NULL; =20 if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_LXC, NULL, N= ULL, 0, NULL)) - goto error; + return NULL; =20 =20 if ((guest =3D virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_EXE, VIR_ARCH_X86_64, "/usr/libexec/libvirt_lxc", NULL, 0, NULL)) =3D=3D NULL) - goto error; + return NULL; =20 if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_LXC, NULL, N= ULL, 0, NULL)) - goto error; + return NULL; =20 =20 if (virTestGetDebug()) { @@ -43,18 +43,14 @@ testLXCCapsInit(void) =20 caps_str =3D virCapabilitiesFormatXML(caps); if (!caps_str) - goto error; + return NULL; =20 VIR_TEST_DEBUG("LXC driver capabilities:\n%s", caps_str); =20 VIR_FREE(caps_str); } =20 - return caps; - - error: - virObjectUnref(caps); - return NULL; + return g_steal_pointer(&caps); } =20 =20 @@ -81,7 +77,8 @@ void testLXCDriverFree(virLXCDriverPtr driver) { virObjectUnref(driver->xmlopt); - virObjectUnref(driver->caps); + if (driver->caps) + g_object_unref(driver->caps); virMutexDestroy(&driver->lock); g_free(driver); } diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index f3b4e2b3b2..082467f58e 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -196,11 +196,10 @@ testQemuAddGuest(virCapsPtr caps, =20 virCapsPtr testQemuCapsInit(void) { - virCapsPtr caps; + g_autoptr(virCaps) caps =3D NULL; size_t i; =20 - if (!(caps =3D virCapabilitiesNew(VIR_ARCH_X86_64, false, false))) - return NULL; + caps =3D virCapabilitiesNew(VIR_ARCH_X86_64, false, false); =20 /* Add dummy 'none' security_driver. This is equal to setting * security_driver =3D "none" in qemu.conf. */ @@ -231,11 +230,10 @@ virCapsPtr testQemuCapsInit(void) VIR_FREE(caps_str); } =20 - return caps; + return g_steal_pointer(&caps); =20 cleanup: caps->host.cpu =3D NULL; - virObjectUnref(caps); return NULL; } =20 @@ -314,7 +312,8 @@ void qemuTestDriverFree(virQEMUDriver *driver) } virObjectUnref(driver->qemuCapsCache); virObjectUnref(driver->xmlopt); - virObjectUnref(driver->caps); + if (driver->caps) + g_object_unref(driver->caps); virObjectUnref(driver->config); virObjectUnref(driver->securityManager); } diff --git a/tests/testutilsxen.c b/tests/testutilsxen.c index d50c3003da..7da90cdd1e 100644 --- a/tests/testutilsxen.c +++ b/tests/testutilsxen.c @@ -11,7 +11,7 @@ static virCapsPtr testXLInitCaps(void) { - virCapsPtr caps; + g_autoptr(virCaps) caps =3D NULL; virCapsGuestPtr guest; virCapsGuestMachinePtr *machines; int nmachines; @@ -78,7 +78,6 @@ testXLInitCaps(void) =20 cleanup: virCapabilitiesFreeMachines(machines, nmachines); - virObjectUnref(caps); return NULL; } =20 diff --git a/tests/vircaps2xmltest.c b/tests/vircaps2xmltest.c index 17cd600a7a..02907b5a91 100644 --- a/tests/vircaps2xmltest.c +++ b/tests/vircaps2xmltest.c @@ -38,7 +38,7 @@ test_virCapabilities(const void *opaque) { struct virCapabilitiesData *data =3D (struct virCapabilitiesData *) op= aque; const char *archStr =3D virArchToString(data->arch); - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; char *capsXML =3D NULL; char *path =3D NULL; char *system =3D NULL; @@ -55,9 +55,6 @@ test_virCapabilities(const void *opaque) virFileWrapperAddPrefix("/sys/fs/resctrl", resctrl); caps =3D virCapabilitiesNew(data->arch, data->offlineMigrate, data->li= veMigrate); =20 - if (!caps) - goto cleanup; - if (!(caps->host.numa =3D virCapabilitiesHostNUMANewHost())) goto cleanup; =20 @@ -82,7 +79,6 @@ test_virCapabilities(const void *opaque) VIR_FREE(resctrl); VIR_FREE(path); VIR_FREE(capsXML); - virObjectUnref(caps); return ret; } =20 diff --git a/tests/vircapstest.c b/tests/vircapstest.c index 08eb017a76..9b37faa1d6 100644 --- a/tests/vircapstest.c +++ b/tests/vircapstest.c @@ -151,11 +151,10 @@ static int test_virCapsDomainDataLookupQEMU(const void *data G_GNUC_UNUSED) { int ret =3D 0; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; =20 if (!(caps =3D testQemuCapsInit())) { - ret =3D -1; - goto out; + return -1; } =20 /* Checking each parameter individually */ @@ -199,8 +198,6 @@ test_virCapsDomainDataLookupQEMU(const void *data G_GNU= C_UNUSED) "/usr/bin/qemu-system-aarch64", "pc"); CAPS_EXPECT_ERR(-1, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_VMWARE, NULL, "pc"); =20 - out: - virObjectUnref(caps); return ret; } #endif /* WITH_QEMU */ @@ -210,11 +207,10 @@ static int test_virCapsDomainDataLookupLXC(const void *data G_GNUC_UNUSED) { int ret =3D 0; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; =20 if (!(caps =3D testLXCCapsInit())) { - ret =3D -1; - goto out; + return -1; } =20 CAPSCOMP(-1, VIR_ARCH_NONE, VIR_DOMAIN_VIRT_NONE, NULL, NULL, @@ -224,8 +220,6 @@ test_virCapsDomainDataLookupLXC(const void *data G_GNUC= _UNUSED) VIR_DOMAIN_OSTYPE_EXE, VIR_ARCH_X86_64, VIR_DOMAIN_VIRT_LXC, "/usr/libexec/libvirt_lxc", NULL); =20 - out: - virObjectUnref(caps); return ret; } #endif /* WITH_LXC */ diff --git a/tests/virresctrltest.c b/tests/virresctrltest.c index 91baef506d..76cc2ef3c6 100644 --- a/tests/virresctrltest.c +++ b/tests/virresctrltest.c @@ -24,7 +24,7 @@ test_virResctrlGetUnused(const void *opaque) g_autoptr(virResctrlAlloc) alloc =3D NULL; char *schemata_str =3D NULL; char *schemata_file; - virCapsPtr caps =3D NULL; + g_autoptr(virCaps) caps =3D NULL; =20 system_dir =3D g_strdup_printf("%s/vircaps2xmldata/linux-%s/system", a= bs_srcdir, data->filename); @@ -65,7 +65,6 @@ test_virResctrlGetUnused(const void *opaque) =20 ret =3D 0; cleanup: - virObjectUnref(caps); VIR_FREE(system_dir); VIR_FREE(resctrl_dir); VIR_FREE(schemata_str); diff --git a/tests/vmx2xmltest.c b/tests/vmx2xmltest.c index 1966aed6fe..b5c557fe33 100644 --- a/tests/vmx2xmltest.c +++ b/tests/vmx2xmltest.c @@ -25,9 +25,6 @@ testCapsInit(void) =20 caps =3D virCapabilitiesNew(VIR_ARCH_I686, true, true); =20 - if (caps =3D=3D NULL) - return; - virCapabilitiesAddHostMigrateTransport(caps, "vpxmigr"); =20 /* i686 guest */ @@ -61,8 +58,7 @@ testCapsInit(void) return; =20 failure: - virObjectUnref(caps); - caps =3D NULL; + g_clear_object(&caps); } =20 static int @@ -285,7 +281,7 @@ mymain(void) =20 DO_TEST("datacenterpath", "datacenterpath"); =20 - virObjectUnref(caps); + g_object_unref(caps); virObjectUnref(xmlopt); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/tests/xml2vmxtest.c b/tests/xml2vmxtest.c index 8f0a2a72a4..d6c7eb4f53 100644 --- a/tests/xml2vmxtest.c +++ b/tests/xml2vmxtest.c @@ -25,9 +25,6 @@ testCapsInit(void) =20 caps =3D virCapabilitiesNew(VIR_ARCH_I686, true, true); =20 - if (caps =3D=3D NULL) - return; - virCapabilitiesAddHostMigrateTransport(caps, "esx"); =20 =20 @@ -62,9 +59,9 @@ testCapsInit(void) return; =20 failure: - virObjectUnref(caps); + if (caps) + g_clear_object(&caps); virObjectUnref(xmlopt); - caps =3D NULL; } =20 static int @@ -294,7 +291,7 @@ mymain(void) =20 DO_TEST("datacenterpath", "datacenterpath", 4); =20 - virObjectUnref(caps); + g_object_unref(caps); virObjectUnref(xmlopt); =20 return result =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927007; cv=none; d=zohomail.com; s=zohoarc; b=NdmScfOxIL+ZqilBV3SqAyLPgUs6CNhtpHZwaHPaCGfx967KL/YgaTsouR12r306vWXj6QSPWincEfeDbFvLSdjOg9KPDgAy3f4SuNm0IoB+j6HVfdUUbZ2Y4lR3JjFwpkpEdowz7iBgsX0UlC1+wGj2TjIRXGR7OCFxM8J/LOM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927007; 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=9b+HyFak7AkggUOqb9AiHsDcCimNEGJsZJ8upA8xyAg=; b=mubQGzTls/BC1QdPGO6KbggdSAExhR5PZWGe1YrlofNvON6oW15G51WcIbyuXBzuisQPhZO5aJG+GwCHj6PaINvwmAvlnc2UPIcdBkYi1Uw5e27LuILqJe8tyzXHl+JYw74fpXhSsIIfcqDbM2rp3GNWH63jdvi6VjB0RZL0wk8= 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 1585927007958424.8051667304783; Fri, 3 Apr 2020 08:16:47 -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-332-oHFaclhXOGuLOQhAe2BvMA-1; Fri, 03 Apr 2020 11:16:42 -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 BECFE18C35A8; Fri, 3 Apr 2020 15:16:35 +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 8DF7A10002BB; Fri, 3 Apr 2020 15:16:35 +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 3F1F918089CD; Fri, 3 Apr 2020 15:16:35 +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 033FGT6c028078 for ; Fri, 3 Apr 2020 11:16:29 -0400 Received: by smtp.corp.redhat.com (Postfix) id 82B9F2022EB1; Fri, 3 Apr 2020 15:16:29 +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 7E73B2022EB2 for ; Fri, 3 Apr 2020 15:16:25 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (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 05EAF8FF67E for ; Fri, 3 Apr 2020 15:16:25 +0000 (UTC) Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-385-FJfTwnWfPIOtDcm1fAhPoA-1; Fri, 03 Apr 2020 11:16:22 -0400 Received: by mail-wr1-f68.google.com with SMTP id a25so9022767wrd.0 for ; Fri, 03 Apr 2020 08:16:22 -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.16.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927006; 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=9b+HyFak7AkggUOqb9AiHsDcCimNEGJsZJ8upA8xyAg=; b=XbuLckxXcINkpw7NtK+M4MpTytS+xkE6PTsOQk+Cp+r9NE2Gj9v5cg8FHs/+gIjsqK2J/d a48WbZUYFGGNfOmeoLXi+lXrVgHhiKv/ftZ7KToYQFF70bdLzaaGGK1Lauza9QcPdmLp1n +BCsMf2NWYpkTLtZPeuECpgpE5YPWno= X-MC-Unique: oHFaclhXOGuLOQhAe2BvMA-1 X-MC-Unique: FJfTwnWfPIOtDcm1fAhPoA-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=FEmuaY2ofI9h4Kom5FileHBtnF7SUr21cnZcHUQseZE=; b=mt9fhBYmJbf+lgB4+a9JQP+PUA5NytMCfWVWtz0pYjUH5kjRlgAu3Sd0IWjqOgfdxA 9AClapa3ynjVCjm4UuAtaco8/4zLNmCAJpFOmj9WUs1ZWbU+3LZoCVqtUyr3V0hlnzj2 ovvxCsX4HN/mu71A7H0mssJNESL4KywgzO83CN5z/mm2yAjZ89pTaRqHcqohCVfxl1n9 vCAnkifJ6HzVERXJ9LnwXbe+Kswj6vq9Fh1yy8DR6YL9w2KS284wNyZlqqnPABpkp+Pj TJdsQC8XaALrcP9FNFlVPmGuR21jlq24vZnlEsLBWxXm/EQtNuXYqezTrudc5rWwQA1I q5RQ== X-Gm-Message-State: AGi0PubH9AXm3fkavV2Xg0tD+SFeIcjNrh47tFJ0WGQWXOiy4MN2386n KY+/324ZAEQXZqQr1nhVJCN96a5Tki0= X-Google-Smtp-Source: APiQypJqikVhztjzYx4fXPPG1avKddj1nGgc3DGlgyDl5C7El7INzH5jimItHMG0L5R0TpyFTzsG5g== X-Received: by 2002:adf:a1d6:: with SMTP id v22mr9820025wrv.416.1585926980495; Fri, 03 Apr 2020 08:16:20 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 03/36] qemu: convert virQEMUCaps to GObject Date: Fri, 3 Apr 2020 17:15:31 +0200 Message-Id: <20200403151604.106616-4-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.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGT6c028078 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" virFileCache had to also be changed to properly unref the QEMUCaps objects; in turn, virfilecachetest was also converted to GObject so it plays nicely with virFileCache. Signed-off-by: Rafael Fonseca --- src/qemu/qemu_capabilities.c | 119 +++++++++++++++-------------------- src/qemu/qemu_capabilities.h | 9 ++- src/qemu/qemu_domain.c | 8 +-- src/qemu/qemu_process.c | 3 +- src/util/virfilecache.c | 13 ++-- tests/cputest.c | 14 ++--- tests/domaincapstest.c | 3 +- tests/qemublocktest.c | 3 +- tests/qemucapabilitiestest.c | 9 +-- tests/qemucaps2xmltest.c | 16 ++--- tests/qemucapsprobe.c | 4 +- tests/qemumemlocktest.c | 3 +- tests/testutilsqemu.c | 18 +++--- tests/virfilecachetest.c | 53 +++++++--------- 14 files changed, 118 insertions(+), 157 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 4bbd14f7ad..36a8467f2c 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -639,7 +639,7 @@ static void virQEMUDomainCapsCacheDispose(void *obj) * And don't forget to update virQEMUCapsNewCopy. */ struct _virQEMUCaps { - virObject parent; + GObject parent; =20 bool kvmSupportsNesting; =20 @@ -677,14 +677,23 @@ struct virQEMUCapsSearchData { }; =20 =20 -static virClassPtr virQEMUCapsClass; -static void virQEMUCapsDispose(void *obj); +G_DEFINE_TYPE(virQEMUCaps, vir_qemu_caps, G_TYPE_OBJECT); =20 -static int virQEMUCapsOnceInit(void) +static void virQEMUCapsFinalize(GObject *obj); + +static void vir_qemu_caps_init(virQEMUCaps *caps G_GNUC_UNUSED) { - if (!VIR_CLASS_NEW(virQEMUCaps, virClassForObject())) - return -1; +} =20 +static void vir_qemu_caps_class_init(virQEMUCapsClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virQEMUCapsFinalize; +} + +static int virQEMUCapsOnceInit(void) +{ if (!(VIR_CLASS_NEW(virQEMUDomainCapsCache, virClassForObjectLockable(= )))) return -1; =20 @@ -864,7 +873,7 @@ virQEMUCapsInitGuest(virCapsPtr caps, virArch guestarch) { char *binary =3D NULL; - virQEMUCapsPtr qemuCaps =3D NULL; + g_autoptr(virQEMUCaps) qemuCaps =3D NULL; int ret =3D -1; =20 binary =3D virQEMUCapsGetDefaultEmulator(hostarch, guestarch); @@ -882,7 +891,6 @@ virQEMUCapsInitGuest(virCapsPtr caps, guestarch); =20 VIR_FREE(binary); - virObjectUnref(qemuCaps); =20 return ret; } @@ -1633,7 +1641,7 @@ int virQEMUCapsGetDefaultVersion(virCapsPtr caps, virFileCachePtr capsCache, unsigned int *version) { - virQEMUCapsPtr qemucaps; + g_autoptr(virQEMUCaps) qemucaps =3D NULL; virArch hostarch; virCapsDomainDataPtr capsdata; =20 @@ -1656,7 +1664,6 @@ int virQEMUCapsGetDefaultVersion(virCapsPtr caps, return -1; =20 *version =3D virQEMUCapsGetVersion(qemucaps); - virObjectUnref(qemucaps); return 0; } =20 @@ -1682,26 +1689,17 @@ virQEMUDomainCapsCacheNew(void) virQEMUCapsPtr virQEMUCapsNew(void) { - virQEMUCapsPtr qemuCaps; - - if (virQEMUCapsInitialize() < 0) - return NULL; - - if (!(qemuCaps =3D virObjectNew(virQEMUCapsClass))) - return NULL; + g_autoptr(virQEMUCaps) qemuCaps =3D + VIR_QEMU_CAPS(g_object_new(VIR_TYPE_QEMU_CAPS, NULL)); =20 qemuCaps->invalidation =3D true; if (!(qemuCaps->flags =3D virBitmapNew(QEMU_CAPS_LAST))) - goto error; + return NULL; =20 if (!(qemuCaps->domCapsCache =3D virQEMUDomainCapsCacheNew())) - goto error; - - return qemuCaps; + return NULL; =20 - error: - virObjectUnref(qemuCaps); - return NULL; + return g_steal_pointer(&qemuCaps); } =20 =20 @@ -1709,6 +1707,8 @@ virQEMUCapsPtr virQEMUCapsNewBinary(const char *binary) { virQEMUCapsPtr qemuCaps =3D virQEMUCapsNew(); + if (!qemuCaps) + return NULL; =20 if (qemuCaps) qemuCaps->binary =3D g_strdup(binary); @@ -1818,7 +1818,7 @@ virQEMUCapsAccelCopy(virQEMUCapsAccelPtr dst, =20 virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qemuCaps) { - virQEMUCapsPtr ret =3D virQEMUCapsNewBinary(qemuCaps->binary); + g_autoptr(virQEMUCaps) ret =3D virQEMUCapsNewBinary(qemuCaps->binary); size_t i; =20 if (!ret) @@ -1842,10 +1842,10 @@ virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qe= muCaps) =20 if (virQEMUCapsAccelCopy(&ret->kvm, &qemuCaps->kvm) < 0 || virQEMUCapsAccelCopy(&ret->tcg, &qemuCaps->tcg) < 0) - goto error; + return NULL; =20 if (VIR_ALLOC_N(ret->gicCapabilities, qemuCaps->ngicCapabilities) < 0) - goto error; + return NULL; ret->ngicCapabilities =3D qemuCaps->ngicCapabilities; for (i =3D 0; i < qemuCaps->ngicCapabilities; i++) ret->gicCapabilities[i] =3D qemuCaps->gicCapabilities[i]; @@ -1853,13 +1853,9 @@ virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qem= uCaps) if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SEV_GUEST) && virQEMUCapsSEVInfoCopy(&ret->sevCapabilities, qemuCaps->sevCapabilities) < 0) - goto error; - - return ret; + return NULL; =20 - error: - virObjectUnref(ret); - return NULL; + return g_steal_pointer(&ret); } =20 =20 @@ -1880,9 +1876,9 @@ virQEMUCapsAccelClear(virQEMUCapsAccelPtr caps) } =20 =20 -void virQEMUCapsDispose(void *obj) +void virQEMUCapsFinalize(GObject *obj) { - virQEMUCapsPtr qemuCaps =3D obj; + virQEMUCapsPtr qemuCaps =3D VIR_QEMU_CAPS(obj); =20 virObjectUnref(qemuCaps->domCapsCache); virBitmapFree(qemuCaps->flags); @@ -1897,6 +1893,8 @@ void virQEMUCapsDispose(void *obj) =20 virQEMUCapsAccelClear(&qemuCaps->kvm); virQEMUCapsAccelClear(&qemuCaps->tcg); + + G_OBJECT_CLASS(vir_qemu_caps_parent_class)->finalize(obj); } =20 void @@ -5142,18 +5140,18 @@ virQEMUCapsNewForBinaryInternal(virArch hostArch, unsigned int microcodeVersion, const char *kernelVersion) { - virQEMUCapsPtr qemuCaps; + g_autoptr(virQEMUCaps) qemuCaps =3D NULL; struct stat sb; =20 if (!(qemuCaps =3D virQEMUCapsNewBinary(binary))) - goto error; + return NULL; =20 /* We would also want to check faccessat if we cared about ACLs, * but we don't. */ if (stat(binary, &sb) < 0) { virReportSystemError(errno, _("Cannot check QEMU binary %s"), binary); - goto error; + return NULL; } qemuCaps->ctime =3D sb.st_ctime; =20 @@ -5164,11 +5162,11 @@ virQEMUCapsNewForBinaryInternal(virArch hostArch, if (!virFileIsExecutable(binary)) { virReportSystemError(errno, _("QEMU binary %s is not executable"), binary); - goto error; + return NULL; } =20 if (virQEMUCapsInitQMP(qemuCaps, libDir, runUid, runGid) < 0) - goto error; + return NULL; =20 qemuCaps->libvirtCtime =3D virGetSelfLastChanged(); qemuCaps->libvirtVersion =3D LIBVIR_VERSION_NUMBER; @@ -5184,11 +5182,7 @@ virQEMUCapsNewForBinaryInternal(virArch hostArch, qemuCaps->kvmSupportsNesting =3D virQEMUCapsKVMSupportsNesting(); } =20 - return qemuCaps; - - error: - virObjectUnref(qemuCaps); - return NULL; + return g_steal_pointer(&qemuCaps); } =20 static void * @@ -5212,20 +5206,16 @@ virQEMUCapsLoadFile(const char *filename, const char *binary, void *privData) { - virQEMUCapsPtr qemuCaps =3D virQEMUCapsNewBinary(binary); + g_autoptr(virQEMUCaps) qemuCaps =3D virQEMUCapsNewBinary(binary); virQEMUCapsCachePrivPtr priv =3D privData; =20 if (!qemuCaps) return NULL; =20 if (virQEMUCapsLoadCache(priv->hostArch, qemuCaps, filename) < 0) - goto error; - - return qemuCaps; + return NULL; =20 - error: - virObjectUnref(qemuCaps); - return NULL; + return g_steal_pointer(&qemuCaps); } =20 =20 @@ -5341,15 +5331,13 @@ virQEMUCapsCacheLookupCopy(virFileCachePtr cache, const char *binary, const char *machineType) { - virQEMUCapsPtr qemuCaps =3D virQEMUCapsCacheLookup(cache, binary); + g_autoptr(virQEMUCaps) qemuCaps =3D virQEMUCapsCacheLookup(cache, bina= ry); virQEMUCapsPtr ret; =20 if (!qemuCaps) return NULL; =20 ret =3D virQEMUCapsNewCopy(qemuCaps); - virObjectUnref(qemuCaps); - if (!ret) return NULL; =20 @@ -5453,8 +5441,7 @@ virQEMUCapsCacheLookupDefault(virFileCachePtr cache, virArch hostarch =3D virArchFromHost(); virArch arch =3D hostarch; virDomainVirtType capsType; - virQEMUCapsPtr qemuCaps =3D NULL; - virQEMUCapsPtr ret =3D NULL; + g_autoptr(virQEMUCaps) qemuCaps =3D NULL; virArch arch_from_caps; g_autofree char *probedbinary =3D NULL; =20 @@ -5462,14 +5449,14 @@ virQEMUCapsCacheLookupDefault(virFileCachePtr cache, (virttype =3D virDomainVirtTypeFromString(virttypeStr)) < 0) { virReportError(VIR_ERR_INVALID_ARG, _("unknown virttype: %s"), virttypeStr); - goto cleanup; + return NULL; } =20 if (archStr && (arch =3D virArchFromString(archStr)) =3D=3D VIR_ARCH_NONE) { virReportError(VIR_ERR_INVALID_ARG, _("unknown architecture: %s"), archStr); - goto cleanup; + return NULL; } =20 if (!binary) { @@ -5478,7 +5465,7 @@ virQEMUCapsCacheLookupDefault(virFileCachePtr cache, } =20 if (!(qemuCaps =3D virQEMUCapsCacheLookup(cache, binary))) - goto cleanup; + return NULL; =20 arch_from_caps =3D virQEMUCapsGetArch(qemuCaps); =20 @@ -5492,7 +5479,7 @@ virQEMUCapsCacheLookupDefault(virFileCachePtr cache, "match given architecture '%s'"), virArchToString(arch_from_caps), virArchToString(arch)); - goto cleanup; + return NULL; } =20 if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_KVM)) @@ -5507,7 +5494,7 @@ virQEMUCapsCacheLookupDefault(virFileCachePtr cache, virReportError(VIR_ERR_INVALID_ARG, _("KVM is not supported by '%s' on this host"), binary); - goto cleanup; + return NULL; } =20 if (machine) { @@ -5518,7 +5505,7 @@ virQEMUCapsCacheLookupDefault(virFileCachePtr cache, virReportError(VIR_ERR_INVALID_ARG, _("the machine '%s' is not supported by emulato= r '%s'"), machine, binary); - goto cleanup; + return NULL; } } else { machine =3D virQEMUCapsGetPreferredMachine(qemuCaps, virttype); @@ -5531,11 +5518,7 @@ virQEMUCapsCacheLookupDefault(virFileCachePtr cache, if (retMachine) *retMachine =3D machine; =20 - ret =3D g_steal_pointer(&qemuCaps); - - cleanup: - virObjectUnref(qemuCaps); - return ret; + return g_steal_pointer(&qemuCaps); } =20 bool diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 51ec1a5165..0602c23b10 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -21,7 +21,9 @@ =20 #pragma once =20 -#include "virobject.h" +#include "internal.h" +#include + #include "capabilities.h" #include "vircommand.h" #include "qemu_monitor.h" @@ -553,10 +555,11 @@ typedef enum { /* virQEMUCapsFlags grouping marker fo= r syntax-check */ QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; =20 -typedef struct _virQEMUCaps virQEMUCaps; +#define VIR_TYPE_QEMU_CAPS vir_qemu_caps_get_type() +G_DECLARE_FINAL_TYPE(virQEMUCaps, vir_qemu_caps, VIR, QEMU_CAPS, GObject); + typedef virQEMUCaps *virQEMUCapsPtr; =20 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(virQEMUCaps, virObjectUnref); =20 virQEMUCapsPtr virQEMUCapsNew(void); virQEMUCapsPtr virQEMUCapsNewBinary(const char *binary); diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 0ae0547b86..32dd69892a 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2249,8 +2249,8 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivatePtr= priv) =20 VIR_FREE(priv->machineName); =20 - virObjectUnref(priv->qemuCaps); - priv->qemuCaps =3D NULL; + if (priv->qemuCaps) + g_clear_object(&priv->qemuCaps); =20 VIR_FREE(priv->pidfile); =20 @@ -6024,7 +6024,7 @@ qemuDomainPostParseDataFree(void *parseOpaque) { virQEMUCapsPtr qemuCaps =3D parseOpaque; =20 - virObjectUnref(qemuCaps); + g_object_unref(qemuCaps); } =20 =20 @@ -6867,7 +6867,7 @@ qemuDomainDefFormatBufInternal(virQEMUDriverPtr drive= r, g_autoptr(virQEMUCaps) qCaps =3D NULL; =20 if (qemuCaps) { - qCaps =3D virObjectRef(qemuCaps); + qCaps =3D g_object_ref(qemuCaps); } else { if (!(qCaps =3D virQEMUCapsCacheLookupCopy(driver->qemuCapsCac= he, def->virtType, diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 6b9f6fb860..3f28c5245c 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5491,7 +5491,8 @@ qemuProcessPrepareQEMUCaps(virDomainObjPtr vm, qemuDomainObjPrivatePtr priv =3D vm->privateData; size_t i; =20 - virObjectUnref(priv->qemuCaps); + if (priv->qemuCaps) + g_object_unref(priv->qemuCaps); if (!(priv->qemuCaps =3D virQEMUCapsCacheLookupCopy(qemuCapsCache, vm->def->virtType, vm->def->emulator, diff --git a/src/util/virfilecache.c b/src/util/virfilecache.c index aecabf173d..e9b4211861 100644 --- a/src/util/virfilecache.c +++ b/src/util/virfilecache.c @@ -34,6 +34,7 @@ #include "virlog.h" #include "virobject.h" #include "virstring.h" +#include =20 #include #include @@ -169,7 +170,8 @@ virFileCacheLoad(virFileCachePtr cache, *data =3D g_steal_pointer(&loadData); =20 cleanup: - virObjectUnref(loadData); + if (loadData) + g_object_unref(loadData); return ret; } =20 @@ -206,7 +208,7 @@ virFileCacheNewData(virFileCachePtr cache, return NULL; =20 if (virFileCacheSave(cache, name, data) < 0) { - virObjectUnref(data); + g_object_unref(data); data =3D NULL; } } @@ -275,8 +277,7 @@ virFileCacheValidate(virFileCachePtr cache, if (*data) { VIR_DEBUG("Caching data '%p' for '%s'", *data, name); if (virHashAddEntry(cache->table, name, *data) < 0) { - virObjectUnref(*data); - *data =3D NULL; + g_clear_object(data); } } } @@ -306,7 +307,7 @@ virFileCacheLookup(virFileCachePtr cache, data =3D virHashLookup(cache->table, name); virFileCacheValidate(cache, name, &data); =20 - virObjectRef(data); + g_object_ref(data); virObjectUnlock(cache); =20 return data; @@ -337,7 +338,7 @@ virFileCacheLookupByFunc(virFileCachePtr cache, data =3D virHashSearch(cache->table, iter, iterData, (void **)&name); virFileCacheValidate(cache, name, &data); =20 - virObjectRef(data); + g_object_ref(data); virObjectUnlock(cache); =20 return data; diff --git a/tests/cputest.c b/tests/cputest.c index 1f59f0d3a9..4590bfacee 100644 --- a/tests/cputest.c +++ b/tests/cputest.c @@ -519,8 +519,8 @@ cpuTestMakeQEMUCaps(const struct data *data) return qemuCaps; =20 error: - virObjectUnref(qemuCaps); - qemuCaps =3D NULL; + if (qemuCaps) + g_clear_object(&qemuCaps); goto cleanup; } =20 @@ -529,7 +529,7 @@ static int cpuTestGetCPUModels(const struct data *data, virDomainCapsCPUModelsPtr *models) { - virQEMUCapsPtr qemuCaps; + g_autoptr(virQEMUCaps) qemuCaps =3D NULL; =20 *models =3D NULL; =20 @@ -542,8 +542,6 @@ cpuTestGetCPUModels(const struct data *data, =20 *models =3D virQEMUCapsGetCPUModels(qemuCaps, VIR_DOMAIN_VIRT_KVM, NUL= L, NULL); =20 - virObjectUnref(qemuCaps); - return 0; } =20 @@ -876,7 +874,7 @@ static int cpuTestJSONCPUID(const void *arg) { const struct data *data =3D arg; - virQEMUCapsPtr qemuCaps =3D NULL; + g_autoptr(virQEMUCaps) qemuCaps =3D NULL; virCPUDefPtr cpu =3D NULL; char *result =3D NULL; int ret =3D -1; @@ -898,7 +896,6 @@ cpuTestJSONCPUID(const void *arg) ret =3D cpuTestCompareXML(data->arch, cpu, result); =20 cleanup: - virObjectUnref(qemuCaps); virCPUDefFree(cpu); VIR_FREE(result); return ret; @@ -909,7 +906,7 @@ static int cpuTestJSONSignature(const void *arg) { const struct data *data =3D arg; - virQEMUCapsPtr qemuCaps =3D NULL; + g_autoptr(virQEMUCaps) qemuCaps =3D NULL; virCPUDataPtr hostData =3D NULL; qemuMonitorCPUModelInfoPtr modelInfo; int ret =3D -1; @@ -924,7 +921,6 @@ cpuTestJSONSignature(const void *arg) ret =3D cpuTestCompareSignature(data, hostData); =20 cleanup: - virObjectUnref(qemuCaps); virCPUDataFree(hostData); return ret; } diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c index fb803eaa47..d6f0021665 100644 --- a/tests/domaincapstest.c +++ b/tests/domaincapstest.c @@ -79,7 +79,7 @@ fillQemuCaps(virDomainCapsPtr domCaps, { int ret =3D -1; char *path =3D NULL; - virQEMUCapsPtr qemuCaps =3D NULL; + g_autoptr(virQEMUCaps) qemuCaps =3D NULL; virDomainCapsLoaderPtr loader =3D &domCaps->os.loader; virDomainVirtType virtType; =20 @@ -131,7 +131,6 @@ fillQemuCaps(virDomainCapsPtr domCaps, =20 ret =3D 0; cleanup: - virObjectUnref(qemuCaps); VIR_FREE(path); return ret; } diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c index f9fbfc98f2..ec97e399c8 100644 --- a/tests/qemublocktest.c +++ b/tests/qemublocktest.c @@ -1450,7 +1450,8 @@ mymain(void) cleanup: qemuTestDriverFree(&driver); VIR_FREE(capslatest_x86_64); - virObjectUnref(caps_x86_64); + if (caps_x86_64) + g_object_unref(caps_x86_64); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/tests/qemucapabilitiestest.c b/tests/qemucapabilitiestest.c index 5b32ac1451..b7a93748d9 100644 --- a/tests/qemucapabilitiestest.c +++ b/tests/qemucapabilitiestest.c @@ -74,7 +74,7 @@ testQemuCaps(const void *opaque) char *repliesFile =3D NULL; char *capsFile =3D NULL; qemuMonitorTestPtr mon =3D NULL; - virQEMUCapsPtr capsActual =3D NULL; + g_autoptr(virQEMUCaps) capsActual =3D NULL; char *binary =3D NULL; char *actual =3D NULL; unsigned int fakeMicrocodeVersion =3D 0; @@ -138,7 +138,6 @@ testQemuCaps(const void *opaque) VIR_FREE(actual); VIR_FREE(binary); qemuMonitorTestFree(mon); - virObjectUnref(capsActual); return ret; } =20 @@ -149,8 +148,8 @@ testQemuCapsCopy(const void *opaque) int ret =3D -1; const testQemuData *data =3D opaque; char *capsFile =3D NULL; - virQEMUCapsPtr orig =3D NULL; - virQEMUCapsPtr copy =3D NULL; + g_autoptr(virQEMUCaps) orig =3D NULL; + g_autoptr(virQEMUCaps) copy =3D NULL; char *actual =3D NULL; =20 capsFile =3D g_strdup_printf("%s/%s_%s.%s.xml", @@ -174,8 +173,6 @@ testQemuCapsCopy(const void *opaque) =20 cleanup: VIR_FREE(capsFile); - virObjectUnref(orig); - virObjectUnref(copy); VIR_FREE(actual); return ret; } diff --git a/tests/qemucaps2xmltest.c b/tests/qemucaps2xmltest.c index 349af0e431..6039895fd8 100644 --- a/tests/qemucaps2xmltest.c +++ b/tests/qemucaps2xmltest.c @@ -51,7 +51,7 @@ testQemuDataInit(testQemuDataPtr data) static virQEMUCapsPtr testQemuGetCaps(char *caps) { - virQEMUCapsPtr qemuCaps =3D NULL; + g_autoptr(virQEMUCaps) qemuCaps =3D NULL; xmlDocPtr xml; xmlXPathContextPtr ctxt =3D NULL; ssize_t i, n; @@ -85,11 +85,10 @@ testQemuGetCaps(char *caps) VIR_FREE(nodes); xmlFreeDoc(xml); xmlXPathFreeContext(ctxt); - return qemuCaps; + return g_steal_pointer(&qemuCaps); =20 error: VIR_FREE(nodes); - virObjectUnref(qemuCaps); xmlFreeDoc(xml); xmlXPathFreeContext(ctxt); return NULL; @@ -98,7 +97,7 @@ testQemuGetCaps(char *caps) static virCapsPtr testGetCaps(char *capsData, const testQemuData *data) { - virQEMUCapsPtr qemuCaps =3D NULL; + g_autoptr(virQEMUCaps) qemuCaps =3D NULL; g_autoptr(virCaps) caps =3D NULL; virArch arch =3D virArchFromString(data->archName); g_autofree char *binary =3D NULL; @@ -107,7 +106,7 @@ testGetCaps(char *capsData, const testQemuData *data) =20 if ((qemuCaps =3D testQemuGetCaps(capsData)) =3D=3D NULL) { fprintf(stderr, "failed to parse qemu capabilities flags"); - goto error; + return NULL; } =20 caps =3D virCapabilitiesNew(arch, false, false); @@ -117,15 +116,10 @@ testGetCaps(char *capsData, const testQemuData *data) qemuCaps, arch) < 0) { fprintf(stderr, "failed to create the capabilities from qemu"); - goto error; + return NULL; } =20 - virObjectUnref(qemuCaps); return g_steal_pointer(&caps); - - error: - virObjectUnref(qemuCaps); - return NULL; } =20 static int diff --git a/tests/qemucapsprobe.c b/tests/qemucapsprobe.c index c7e8f3309d..f3705a1ed5 100644 --- a/tests/qemucapsprobe.c +++ b/tests/qemucapsprobe.c @@ -45,7 +45,7 @@ int main(int argc, char **argv) { virThread thread; - virQEMUCapsPtr caps; + g_autoptr(virQEMUCaps) caps =3D NULL; const char *mock =3D VIR_TEST_MOCK("qemucapsprobe"); =20 if (!virFileIsExecutable(mock)) { @@ -78,7 +78,5 @@ main(int argc, char **argv) -1, -1, 0, NULL))) return EXIT_FAILURE; =20 - virObjectUnref(caps); - return EXIT_SUCCESS; } diff --git a/tests/qemumemlocktest.c b/tests/qemumemlocktest.c index 3f18fed1c3..c1945f1f2b 100644 --- a/tests/qemumemlocktest.c +++ b/tests/qemumemlocktest.c @@ -58,7 +58,7 @@ mymain(void) { int ret =3D 0; char *fakerootdir; - virQEMUCapsPtr qemuCaps =3D NULL; + g_autoptr(virQEMUCaps) qemuCaps =3D NULL; =20 fakerootdir =3D g_strdup(FAKEROOTDIRTEMPLATE); =20 @@ -148,7 +148,6 @@ mymain(void) DO_TEST("pseries-locked+hostdev", VIR_DOMAIN_MEMORY_PARAM_UNLIMITED); =20 cleanup: - virObjectUnref(qemuCaps); =20 if (getenv("LIBVIRT_SKIP_CLEANUP") =3D=3D NULL) virFileDeleteTree(fakerootdir); diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index 082467f58e..dd8143ff55 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -286,20 +286,16 @@ virQEMUCapsPtr qemuTestParseCapabilitiesArch(virArch arch, const char *capsFile) { - virQEMUCapsPtr qemuCaps =3D NULL; + g_autoptr(virQEMUCaps) qemuCaps =3D NULL; g_autofree char *binary =3D g_strdup_printf("/usr/bin/qemu-system-%s", virArchToString(arch)); =20 if (!(qemuCaps =3D virQEMUCapsNewBinary(binary)) || virQEMUCapsLoadCache(arch, qemuCaps, capsFile) < 0) - goto error; + return NULL; =20 virQEMUCapsSetInvalidation(qemuCaps, false); - return qemuCaps; - - error: - virObjectUnref(qemuCaps); - return NULL; + return g_steal_pointer(&qemuCaps); } =20 =20 @@ -359,7 +355,7 @@ int qemuTestCapsCacheInsert(virFileCachePtr cache, } =20 if (virFileCacheInsertData(cache, qemu_emulators[i], tmpCaps) < 0)= { - virObjectUnref(tmpCaps); + g_object_unref(tmpCaps); return -1; } } @@ -663,7 +659,7 @@ testQemuInfoSetArgs(struct testQemuInfo *info, { va_list argptr; testQemuInfoArgName argname; - virQEMUCapsPtr qemuCaps =3D NULL; + g_autoptr(virQEMUCaps) qemuCaps =3D NULL; int gic =3D GIC_NONE; char *capsarch =3D NULL; char *capsver =3D NULL; @@ -780,7 +776,6 @@ testQemuInfoSetArgs(struct testQemuInfo *info, ret =3D 0; =20 cleanup: - virObjectUnref(qemuCaps); va_end(argptr); =20 return ret; @@ -792,5 +787,6 @@ testQemuInfoClear(struct testQemuInfo *info) { VIR_FREE(info->infile); VIR_FREE(info->outfile); - virObjectUnref(info->qemuCaps); + if (info->qemuCaps) + g_object_unref(info->qemuCaps); } diff --git a/tests/virfilecachetest.c b/tests/virfilecachetest.c index 6d280b3bec..2c4f4a94e5 100644 --- a/tests/virfilecachetest.c +++ b/tests/virfilecachetest.c @@ -24,52 +24,50 @@ #include "virfile.h" #include "virfilecache.h" =20 +#include =20 #define VIR_FROM_THIS VIR_FROM_NONE =20 =20 struct _testFileCacheObj { - virObject parent; + GObject parent; char *data; }; -typedef struct _testFileCacheObj testFileCacheObj; +#define TYPE_TEST_FILE_CACHE_OBJ test_file_cache_obj_get_type() +G_DECLARE_FINAL_TYPE(testFileCacheObj, test_file_cache_obj, TEST, FILE_CAC= HE_OBJ, GObject); typedef testFileCacheObj *testFileCacheObjPtr; =20 =20 -static virClassPtr testFileCacheObjClass; +G_DEFINE_TYPE(testFileCacheObj, test_file_cache_obj, G_TYPE_OBJECT); =20 =20 static void -testFileCacheObjDispose(void *opaque) +testFileCacheObjFinalize(GObject *opaque) { - testFileCacheObjPtr obj =3D opaque; + testFileCacheObjPtr obj =3D TEST_FILE_CACHE_OBJ(opaque); VIR_FREE(obj->data); -} =20 + G_OBJECT_CLASS(test_file_cache_obj_parent_class)->finalize(opaque); +} =20 -static int -testFileCacheObjOnceInit(void) +static void +test_file_cache_obj_init(testFileCacheObj *obj G_GNUC_UNUSED) { - if (!VIR_CLASS_NEW(testFileCacheObj, virClassForObject())) - return -1; - - return 0; } =20 +static void +test_file_cache_obj_class_init(testFileCacheObjClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 -VIR_ONCE_GLOBAL_INIT(testFileCacheObj); + obj->finalize =3D testFileCacheObjFinalize; +} =20 =20 static testFileCacheObjPtr testFileCacheObjNew(const char *data) { - testFileCacheObjPtr obj; - - if (testFileCacheObjInitialize() < 0) - return NULL; - - if (!(obj =3D virObjectNew(testFileCacheObjClass))) - return NULL; + testFileCacheObjPtr obj =3D TEST_FILE_CACHE_OBJ(g_object_new(TYPE_TEST= _FILE_CACHE_OBJ, NULL)); =20 obj->data =3D g_strdup(data); =20 @@ -160,9 +158,8 @@ typedef testFileCacheData *testFileCacheDataPtr; static int testFileCache(const void *opaque) { - int ret =3D -1; const testFileCacheData *data =3D opaque; - testFileCacheObjPtr obj =3D NULL; + g_autoptr(testFileCacheObj) obj =3D NULL; testFileCachePrivPtr testPriv =3D virFileCacheGetPriv(data->cache); =20 testPriv->dataSaved =3D false; @@ -171,27 +168,23 @@ testFileCache(const void *opaque) =20 if (!(obj =3D virFileCacheLookup(data->cache, data->name))) { fprintf(stderr, "Getting cached data failed.\n"); - goto cleanup; + return -1; } =20 if (!obj->data || STRNEQ(data->expectData, obj->data)) { fprintf(stderr, "Expect data '%s', loaded data '%s'.\n", data->expectData, NULLSTR(obj->data)); - goto cleanup; + return -1; } =20 if (data->expectSave !=3D testPriv->dataSaved) { fprintf(stderr, "Expect data to be saved '%s', data saved '%s'.\n", data->expectSave ? "yes" : "no", testPriv->dataSaved ? "yes" : "no"); - goto cleanup; + return -1; } =20 - ret =3D 0; - - cleanup: - virObjectUnref(obj); - return ret; + return 0; } =20 =20 --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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=1585927008; cv=none; d=zohomail.com; s=zohoarc; b=H47E3ezJMPFyfKb5LRpe0+tCG1N9H1zSYN741xcXq6EsUbw4co75CXa+VFqsEYvjqnqTdsWEi8LVS8aYAq9EI2nE9Vv32O9Mf5+CHFuP2PEecEzxd4ti91hQqK4mWdddCFABUwnCVYAh7zt9G3wHWf8EeiSvR+42uZu8pW6dMaE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927008; 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=Qd5kNaeCMIVHv672TAcU7DjF0P3Q7WGZPdWlWaG56ZU=; b=CEL0cyYv/81g914EnJFKMptm1lBpzujJx+LK2S3yGpGZhyBhLI7Z5VHJXE7ETzs0OMQIGrHxCksTc/Ll2aNIqQ8UxXeDn0996Rc48doHCs/mLVJnhf/0dSvb5trt9v2iA2q6BTFsmgipZcYHCAT2WiQfudT31hTHS+vq+cQTd1w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1585927008763244.9434785882621; Fri, 3 Apr 2020 08:16:48 -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-514-JBKlMslKMoCnbKJpkqxXQg-1; Fri, 03 Apr 2020 11:16:44 -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 1298318C35A3; Fri, 3 Apr 2020 15:16:38 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DAD3260C05; Fri, 3 Apr 2020 15:16:37 +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 8CFBF4E45F; Fri, 3 Apr 2020 15:16:37 +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 033FGV3j028098 for ; Fri, 3 Apr 2020 11:16:31 -0400 Received: by smtp.corp.redhat.com (Postfix) id 3D5F613CCA0; Fri, 3 Apr 2020 15:16:31 +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 3979D107504 for ; Fri, 3 Apr 2020 15:16:31 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (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 1C3678EFB57 for ; Fri, 3 Apr 2020 15:16:31 +0000 (UTC) Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-170-Xc_emhxhNt6u8mPpEl6v3A-1; Fri, 03 Apr 2020 11:16:27 -0400 Received: by mail-wm1-f54.google.com with SMTP id f6so8118203wmj.3 for ; Fri, 03 Apr 2020 08:16:27 -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.16.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927007; 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=Qd5kNaeCMIVHv672TAcU7DjF0P3Q7WGZPdWlWaG56ZU=; b=Hi57J2QWQH3QE9BwMdE+87qG6Q8uimmeHC4DvFm/xkId2/nUl5shjdCZiFzdgRQ1QlJaQj gDwIsmVd8HMprm+Q14jAnsATiJC5jneERwC8ZT0O1SWMvoi/nLqifVinnZtPSWpOmtl0K+ OBdwOBnKECiHOZwJ7c/Ttz0HnBCkb60= X-MC-Unique: JBKlMslKMoCnbKJpkqxXQg-1 X-MC-Unique: Xc_emhxhNt6u8mPpEl6v3A-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=iDxN7p2p2YSUm1KjIN392HzBomF4SFQfUTao5w9cdOQ=; b=eQpJORrQxYxwuZQf+zpFcnJ0MZrX8e5pW/4g6EBc5zUPlTey6d9DN+b5ogYQfNfHJy rB0JhDOQbGDLudHDBnMIPPAlW4utsO89GBG6GMwsAboqUaBCv08PDZcV49itCjulyjb8 FdG8vWDRI/5T1EPxrFzqXB5tZACYfEmcgU4qAXchmNsC9MsGQwQrb3yOM86OMGXJhTDq aHzy7H33+L7AJWIhQ19Yfs8LANwOq/HhAr4zqJL27pZ1+A17MZaw0z+wRT27pj4pskxi k3j5e6gqBlVH8i4/7vhbBf4OcJNXISWKBwGVihrvgheT8nSr5mnkLeqJl4zr7weVJDov U5UQ== X-Gm-Message-State: AGi0PuYKT0jLM86/CMqNQYKEFqTXGF1o4h/qNAfx8cBG2lOwjETy4Hv4 aPXu8o/og9SDiWLTqLM1+rJxgXeLjvk= X-Google-Smtp-Source: APiQypK0GgY4+a89j0YyzBmzynK3b3rZ3gT9Y1gkE0tEnhGFu5Yvyu4YCUUZd2dA/ReTCzUVuQF3gw== X-Received: by 2002:a1c:2b43:: with SMTP id r64mr9464030wmr.77.1585926982235; Fri, 03 Apr 2020 08:16:22 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 04/36] rpc: convert virNetClientProgram to GObject Date: Fri, 3 Apr 2020 17:15:32 +0200 Message-Id: <20200403151604.106616-5-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 033FGV3j028098 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/admin/admin_remote.c | 10 +++---- src/locking/lock_driver_lockd.c | 23 ++++++++------- src/logging/log_manager.c | 17 ++++++----- src/lxc/lxc_monitor.c | 3 +- src/remote/remote_driver.c | 52 +++++++++++++++++---------------- src/rpc/virnetclient.c | 4 +-- src/rpc/virnetclientprogram.c | 29 +++++++++--------- src/rpc/virnetclientprogram.h | 10 +++++-- src/rpc/virnetclientstream.c | 5 ++-- 9 files changed, 82 insertions(+), 71 deletions(-) diff --git a/src/admin/admin_remote.c b/src/admin/admin_remote.c index ca5e0c9fe4..da90939e49 100644 --- a/src/admin/admin_remote.c +++ b/src/admin/admin_remote.c @@ -41,7 +41,8 @@ remoteAdminPrivDispose(void *opaque) { remoteAdminPrivPtr priv =3D opaque; =20 - virObjectUnref(priv->program); + if (priv->program) + g_object_unref(priv->program); virObjectUnref(priv->client); } =20 @@ -227,10 +228,9 @@ remoteAdminPrivNew(const char *sock_path) if (!(priv->client =3D virNetClientNewUNIX(sock_path, false, NULL))) goto error; =20 - if (!(priv->program =3D virNetClientProgramNew(ADMIN_PROGRAM, - ADMIN_PROTOCOL_VERSION, - NULL, 0, NULL))) - goto error; + priv->program =3D virNetClientProgramNew(ADMIN_PROGRAM, + ADMIN_PROTOCOL_VERSION, + NULL, 0, NULL); =20 if (virNetClientAddProgram(priv->client, priv->program) < 0) goto error; diff --git a/src/locking/lock_driver_lockd.c b/src/locking/lock_driver_lock= d.c index bec98dd05f..7520545dc0 100644 --- a/src/locking/lock_driver_lockd.c +++ b/src/locking/lock_driver_lockd.c @@ -213,12 +213,11 @@ static virNetClientPtr virLockManagerLockDaemonConnec= tionNew(bool privileged, daemonPath))) goto error; =20 - if (!(*prog =3D virNetClientProgramNew(VIR_LOCK_SPACE_PROTOCOL_PROGRAM, - VIR_LOCK_SPACE_PROTOCOL_PROGRAM_V= ERSION, - NULL, - 0, - NULL))) - goto error; + *prog =3D virNetClientProgramNew(VIR_LOCK_SPACE_PROTOCOL_PROGRAM, + VIR_LOCK_SPACE_PROTOCOL_PROGRAM_VERSION, + NULL, + 0, + NULL); =20 if (virNetClientAddProgram(client, *prog) < 0) goto error; @@ -233,7 +232,8 @@ static virNetClientPtr virLockManagerLockDaemonConnecti= onNew(bool privileged, VIR_FREE(lockdpath); virNetClientClose(client); virObjectUnref(client); - virObjectUnref(*prog); + if (*prog) + g_object_unref(*prog); return NULL; } =20 @@ -296,7 +296,8 @@ static int virLockManagerLockDaemonSetupLockspace(const= char *path) rv =3D 0; =20 cleanup: - virObjectUnref(program); + if (program) + g_object_unref(program); virNetClientClose(client); virObjectUnref(client); return rv; @@ -660,7 +661,8 @@ static int virLockManagerLockDaemonAcquire(virLockManag= erPtr lock, VIR_FORCE_CLOSE(*fd); virNetClientClose(client); virObjectUnref(client); - virObjectUnref(program); + if (program) + g_object_unref(program); =20 return rv; } @@ -713,7 +715,8 @@ static int virLockManagerLockDaemonRelease(virLockManag= erPtr lock, cleanup: virNetClientClose(client); virObjectUnref(client); - virObjectUnref(program); + if (program) + g_object_unref(program); =20 return rv; } diff --git a/src/logging/log_manager.c b/src/logging/log_manager.c index fd7c2922b3..dee5307e56 100644 --- a/src/logging/log_manager.c +++ b/src/logging/log_manager.c @@ -83,12 +83,11 @@ virLogManagerConnect(bool privileged, daemonPath))) goto error; =20 - if (!(*prog =3D virNetClientProgramNew(VIR_LOG_MANAGER_PROTOCOL_PROGRA= M, - VIR_LOG_MANAGER_PROTOCOL_PROGRAM_= VERSION, - NULL, - 0, - NULL))) - goto error; + *prog =3D virNetClientProgramNew(VIR_LOG_MANAGER_PROTOCOL_PROGRAM, + VIR_LOG_MANAGER_PROTOCOL_PROGRAM_VERSIO= N, + NULL, + 0, + NULL); =20 if (virNetClientAddProgram(client, *prog) < 0) goto error; @@ -103,7 +102,8 @@ virLogManagerConnect(bool privileged, VIR_FREE(logdpath); virNetClientClose(client); virObjectUnref(client); - virObjectUnref(*prog); + if (*prog) + g_object_unref(*prog); return NULL; } =20 @@ -135,7 +135,8 @@ virLogManagerFree(virLogManagerPtr mgr) =20 if (mgr->client) virNetClientClose(mgr->client); - virObjectUnref(mgr->program); + if (mgr->program) + g_object_unref(mgr->program); virObjectUnref(mgr->client); =20 VIR_FREE(mgr); diff --git a/src/lxc/lxc_monitor.c b/src/lxc/lxc_monitor.c index 479125374b..923a0a5a2f 100644 --- a/src/lxc/lxc_monitor.c +++ b/src/lxc/lxc_monitor.c @@ -198,7 +198,8 @@ static void virLXCMonitorDispose(void *opaque) VIR_DEBUG("mon=3D%p", mon); if (mon->cb.destroy) (mon->cb.destroy)(mon, mon->vm); - virObjectUnref(mon->program); + if (mon->program) + g_object_unref(mon->program); virObjectUnref(mon->vm); } =20 diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 7bae0c2514..5051c583d7 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -1280,24 +1280,21 @@ doRemoteOpen(virConnectPtr conn, remoteClientCloseFunc, priv->closeCallback, virObjectFreeCallbac= k); =20 - if (!(priv->remoteProgram =3D virNetClientProgramNew(REMOTE_PROGRAM, - REMOTE_PROTOCOL_VER= SION, - remoteEvents, - G_N_ELEMENTS(remote= Events), - conn))) - goto failed; - if (!(priv->lxcProgram =3D virNetClientProgramNew(LXC_PROGRAM, - LXC_PROTOCOL_VERSION, - NULL, - 0, - NULL))) - goto failed; - if (!(priv->qemuProgram =3D virNetClientProgramNew(QEMU_PROGRAM, - QEMU_PROTOCOL_VERSION, - qemuEvents, - G_N_ELEMENTS(qemuEven= ts), - conn))) - goto failed; + priv->remoteProgram =3D virNetClientProgramNew(REMOTE_PROGRAM, + REMOTE_PROTOCOL_VERSION, + remoteEvents, + G_N_ELEMENTS(remoteEvents= ), + conn); + priv->lxcProgram =3D virNetClientProgramNew(LXC_PROGRAM, + LXC_PROTOCOL_VERSION, + NULL, + 0, + NULL); + priv->qemuProgram =3D virNetClientProgramNew(QEMU_PROGRAM, + QEMU_PROTOCOL_VERSION, + qemuEvents, + G_N_ELEMENTS(qemuEvents), + conn); =20 if (virNetClientAddProgram(priv->client, priv->remoteProgram) < 0 || virNetClientAddProgram(priv->client, priv->lxcProgram) < 0 || @@ -1369,9 +1366,12 @@ doRemoteOpen(virConnectPtr conn, return VIR_DRV_OPEN_SUCCESS; =20 failed: - virObjectUnref(priv->remoteProgram); - virObjectUnref(priv->lxcProgram); - virObjectUnref(priv->qemuProgram); + if (priv->remoteProgram) + g_object_unref(priv->remoteProgram); + if (priv->lxcProgram) + g_object_unref(priv->lxcProgram); + if (priv->qemuProgram) + g_object_unref(priv->qemuProgram); virNetClientClose(priv->client); virObjectUnref(priv->client); priv->client =3D NULL; @@ -1532,10 +1532,12 @@ doRemoteClose(virConnectPtr conn, struct private_da= ta *priv) priv->client =3D NULL; virObjectUnref(priv->closeCallback); priv->closeCallback =3D NULL; - virObjectUnref(priv->remoteProgram); - virObjectUnref(priv->lxcProgram); - virObjectUnref(priv->qemuProgram); - priv->remoteProgram =3D priv->qemuProgram =3D priv->lxcProgram =3D NUL= L; + if (priv->remoteProgram) + g_clear_object(&priv->remoteProgram); + if (priv->lxcProgram) + g_clear_object(&priv->lxcProgram); + if (priv->qemuProgram) + g_clear_object(&priv->qemuProgram); =20 /* Free hostname copy */ VIR_FREE(priv->hostname); diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c index 1c5bef86a1..f940bed84e 100644 --- a/src/rpc/virnetclient.c +++ b/src/rpc/virnetclient.c @@ -685,7 +685,7 @@ void virNetClientDispose(void *obj) client->closeFf(client->closeOpaque); =20 for (i =3D 0; i < client->nprograms; i++) - virObjectUnref(client->programs[i]); + g_object_unref(client->programs[i]); VIR_FREE(client->programs); =20 g_main_loop_unref(client->eventLoop); @@ -1010,7 +1010,7 @@ int virNetClientAddProgram(virNetClientPtr client, if (VIR_EXPAND_N(client->programs, client->nprograms, 1) < 0) goto error; =20 - client->programs[client->nprograms-1] =3D virObjectRef(prog); + client->programs[client->nprograms-1] =3D g_object_ref(prog); =20 virObjectUnlock(client); return 0; diff --git a/src/rpc/virnetclientprogram.c b/src/rpc/virnetclientprogram.c index 4d1a2bc28b..38625e7ad1 100644 --- a/src/rpc/virnetclientprogram.c +++ b/src/rpc/virnetclientprogram.c @@ -38,7 +38,7 @@ VIR_LOG_INIT("rpc.netclientprogram"); =20 struct _virNetClientProgram { - virObject parent; + GObject parent; =20 unsigned program; unsigned version; @@ -47,19 +47,19 @@ struct _virNetClientProgram { void *eventOpaque; }; =20 -static virClassPtr virNetClientProgramClass; -static void virNetClientProgramDispose(void *obj); +G_DEFINE_TYPE(virNetClientProgram, vir_net_client_program, G_TYPE_OBJECT); +static void virNetClientProgramFinalize(GObject *obj); =20 -static int virNetClientProgramOnceInit(void) +static void vir_net_client_program_init(virNetClientProgram *prg G_GNUC_UN= USED) { - if (!VIR_CLASS_NEW(virNetClientProgram, virClassForObject())) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(virNetClientProgram); +static void vir_net_client_program_class_init(virNetClientProgramClass *kl= ass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 + obj->finalize =3D virNetClientProgramFinalize; +} =20 virNetClientProgramPtr virNetClientProgramNew(unsigned program, unsigned version, @@ -67,13 +67,9 @@ virNetClientProgramPtr virNetClientProgramNew(unsigned p= rogram, size_t nevents, void *eventOpaque) { - virNetClientProgramPtr prog; - - if (virNetClientProgramInitialize() < 0) - return NULL; + virNetClientProgramPtr prog =3D + VIR_NET_CLIENT_PROGRAM(g_object_new(VIR_TYPE_NET_CLIENT_PROGRAM, N= ULL)); =20 - if (!(prog =3D virObjectNew(virNetClientProgramClass))) - return NULL; =20 prog->program =3D program; prog->version =3D version; @@ -85,8 +81,9 @@ virNetClientProgramPtr virNetClientProgramNew(unsigned pr= ogram, } =20 =20 -void virNetClientProgramDispose(void *obj G_GNUC_UNUSED) +void virNetClientProgramFinalize(GObject *obj) { + G_OBJECT_CLASS(vir_net_client_program_parent_class)->finalize(obj); } =20 =20 diff --git a/src/rpc/virnetclientprogram.h b/src/rpc/virnetclientprogram.h index 1ac0f30023..1f7006d462 100644 --- a/src/rpc/virnetclientprogram.h +++ b/src/rpc/virnetclientprogram.h @@ -24,12 +24,18 @@ #include =20 #include "virnetmessage.h" -#include "virobject.h" +#include "internal.h" +#include =20 typedef struct _virNetClient virNetClient; typedef virNetClient *virNetClientPtr; =20 -typedef struct _virNetClientProgram virNetClientProgram; +#define VIR_TYPE_NET_CLIENT_PROGRAM vir_net_client_program_get_type() +G_DECLARE_FINAL_TYPE(virNetClientProgram, + vir_net_client_program, + VIR, + NET_CLIENT_PROGRAM, + GObject); typedef virNetClientProgram *virNetClientProgramPtr; =20 typedef struct _virNetClientProgramEvent virNetClientProgramEvent; diff --git a/src/rpc/virnetclientstream.c b/src/rpc/virnetclientstream.c index f904eaba31..355739892e 100644 --- a/src/rpc/virnetclientstream.c +++ b/src/rpc/virnetclientstream.c @@ -145,7 +145,7 @@ virNetClientStreamPtr virNetClientStreamNew(virNetClien= tProgramPtr prog, if (!(st =3D virObjectLockableNew(virNetClientStreamClass))) return NULL; =20 - st->prog =3D virObjectRef(prog); + st->prog =3D g_object_ref(prog); st->proc =3D proc; st->serial =3D serial; st->allowSkip =3D allowSkip; @@ -163,7 +163,8 @@ void virNetClientStreamDispose(void *obj) virNetMessageQueueServe(&st->rx); virNetMessageFree(msg); } - virObjectUnref(st->prog); + if (st->prog) + g_object_unref(st->prog); } =20 bool virNetClientStreamMatches(virNetClientStreamPtr st, --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927009; cv=none; d=zohomail.com; s=zohoarc; b=DJdsyQ+BhKM83zAVb+aSCMSItoezl2PqImBKCJgw6x6C0nDfoF9IX04aQnEu9QUF04yKtsSqaDGmvfSyqrdPF0LBlasDQ4OM6nsu08nxfTg6oEFaSRUJNG3IwmpOxW+L8wWIPnuww4rVJGheBsLa+QnEd7GaRKhOBth77wy4GVY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927009; 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=EbPubIDmLHkjTbLiDNBJwNQo9Nd66L8bKYY9yZfMgZw=; b=DEUM/OaboO92WARrqTPZMC3yllh5LZgRkK3j3T6bfKgu9OQFE9UJcfIhVflR0zzOeuzwjWChrCfa9zJZ1DF9HKrCj7WgqzCkf1+xcqj8/z7ZaKo1d0aS8gl808CbjH4qUHrC66oVodV0P3nO/4n/Shix36Iz0YAu7FZSYb8e2ds= 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 1585927009801267.25768582515684; Fri, 3 Apr 2020 08:16:49 -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-271-npeuVd4DOXSmloYB0E2nEA-1; Fri, 03 Apr 2020 11:16:43 -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 0D25B802687; Fri, 3 Apr 2020 15:16:37 +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 D749B60C05; Fri, 3 Apr 2020 15:16:36 +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 8E8AE18089D0; Fri, 3 Apr 2020 15:16:36 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FGS7A028066 for ; Fri, 3 Apr 2020 11:16:28 -0400 Received: by smtp.corp.redhat.com (Postfix) id 67BF72166B30; Fri, 3 Apr 2020 15:16:28 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6381B2166B2E for ; Fri, 3 Apr 2020 15:16:28 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (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 3E442185A791 for ; Fri, 3 Apr 2020 15:16:28 +0000 (UTC) Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-134-Yddo7YgAOZWCdsFEoQX9Ag-1; Fri, 03 Apr 2020 11:16:25 -0400 Received: by mail-wm1-f44.google.com with SMTP id t8so7513610wmi.2 for ; Fri, 03 Apr 2020 08:16:25 -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.16.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927008; 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=EbPubIDmLHkjTbLiDNBJwNQo9Nd66L8bKYY9yZfMgZw=; b=cZFKyxnn7oKWrVlJEtTeVjOyBTemneil7mAr7YQ31/S3IeHUYATXssfRtocv8VEEJd99dG iIcGiIHkdldVCThXAfa4KBwlFMdKU9QHokU0JLyZrL4R57L5l9qDL2dCn4B46k51XwgbKC esgDFb+bN4xwAqAQ2vzhUQX2Vo3oJuU= X-MC-Unique: npeuVd4DOXSmloYB0E2nEA-1 X-MC-Unique: Yddo7YgAOZWCdsFEoQX9Ag-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=fau7mhrjORGTDISRqpIkWofyMPpNFhF5epqmiWVFx34=; b=O4cVPDtN2G8YSXFwGZC65VR5HdfhxE3YNBHCKKZDYnuhN+OuKWGj3T/OsrLysMnxM9 +8bLa5u6YIOUPQ0AzgULWaXfJusSPmuFfUy5yw/wqdAfD3pJeN/2i2EfVuK3GYRntMjk kDDO68ZOE3HPNz2pdl2FWjydMgsJS+r9pFAQQXA6rMD9RMJyU3Anyvx9FjtLHVJJooxm L/6B+qnp1QdtY3Hj6+/wN7YbO/MJSiPRZNFKBt3ST//mUIwOZe9VAIQxVbCwhiEsjmvj 7QBxpnEgPdCuUTcm0eNf8y6/9VVxzaKoskl7cnfzI3HS5Woqh6zxr7Jonw0CwZp1Em/F T2ig== X-Gm-Message-State: AGi0Pua7Rh3761OKOOeqo60rmbVSr7+cQZZ58g3h2ZWx/+jkTVuf9XJd p1WPSCCcuspEXU64w4+Aeo3o65JcC5w= X-Google-Smtp-Source: APiQypJzKBlyiza0zkEcmRA0nl1lm/myLIt8ZdmFXZnCxtmWDzbJR8m7y91Q7mKOqh8z1rnqtzezuA== X-Received: by 2002:a1c:9907:: with SMTP id b7mr9659198wme.17.1585926983706; Fri, 03 Apr 2020 08:16:23 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 05/36] rpc: convert virNetServerProgram to GObject Date: Fri, 3 Apr 2020 17:15:33 +0200 Message-Id: <20200403151604.106616-6-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.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGS7A028066 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/locking/lock_daemon.c | 28 ++++++---------- src/logging/log_daemon.c | 28 ++++++---------- src/lxc/lxc_controller.c | 13 +++++--- src/remote/remote_daemon.c | 52 ++++++++++------------------- src/remote/remote_daemon_dispatch.c | 19 ++++++----- src/remote/remote_daemon_stream.c | 5 +-- src/rpc/virnetserver.c | 14 ++++---- src/rpc/virnetserverprogram.c | 30 ++++++++--------- src/rpc/virnetserverprogram.h | 10 ++++-- 9 files changed, 88 insertions(+), 111 deletions(-) diff --git a/src/locking/lock_daemon.c b/src/locking/lock_daemon.c index 4eff63014a..260a74a81a 100644 --- a/src/locking/lock_daemon.c +++ b/src/locking/lock_daemon.c @@ -860,8 +860,8 @@ virLockDaemonUsage(const char *argv0, bool privileged) int main(int argc, char **argv) { virNetServerPtr lockSrv =3D NULL; virNetServerPtr adminSrv =3D NULL; - virNetServerProgramPtr lockProgram =3D NULL; - virNetServerProgramPtr adminProgram =3D NULL; + g_autoptr(virNetServerProgram) lockProgram =3D NULL; + g_autoptr(virNetServerProgram) adminProgram =3D NULL; char *remote_config_file =3D NULL; int statuswrite =3D -1; int ret =3D 1; @@ -1134,13 +1134,10 @@ int main(int argc, char **argv) { goto cleanup; } =20 - if (!(lockProgram =3D virNetServerProgramNew(VIR_LOCK_SPACE_PROTOCOL_P= ROGRAM, - VIR_LOCK_SPACE_PROTOCOL_PRO= GRAM_VERSION, - virLockSpaceProtocolProcs, - virLockSpaceProtocolNProcs)= )) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + lockProgram =3D virNetServerProgramNew(VIR_LOCK_SPACE_PROTOCOL_PROGRAM, + VIR_LOCK_SPACE_PROTOCOL_PROGRAM_V= ERSION, + virLockSpaceProtocolProcs, + virLockSpaceProtocolNProcs); =20 if (virNetServerAddProgram(lockSrv, lockProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; @@ -1148,13 +1145,10 @@ int main(int argc, char **argv) { } =20 if (adminSrv !=3D NULL) { - if (!(adminProgram =3D virNetServerProgramNew(ADMIN_PROGRAM, - ADMIN_PROTOCOL_VERSION, - adminProcs, - adminNProcs))) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + adminProgram =3D virNetServerProgramNew(ADMIN_PROGRAM, + ADMIN_PROTOCOL_VERSION, + adminProcs, + adminNProcs); if (virNetServerAddProgram(adminSrv, adminProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; goto cleanup; @@ -1191,8 +1185,6 @@ int main(int argc, char **argv) { ret =3D 0; =20 cleanup: - virObjectUnref(lockProgram); - virObjectUnref(adminProgram); virObjectUnref(lockSrv); virObjectUnref(adminSrv); virLockDaemonFree(lockDaemon); diff --git a/src/logging/log_daemon.c b/src/logging/log_daemon.c index f37054706e..98f8b9c68b 100644 --- a/src/logging/log_daemon.c +++ b/src/logging/log_daemon.c @@ -641,8 +641,8 @@ virLogDaemonUsage(const char *argv0, bool privileged) int main(int argc, char **argv) { virNetServerPtr logSrv =3D NULL; virNetServerPtr adminSrv =3D NULL; - virNetServerProgramPtr logProgram =3D NULL; - virNetServerProgramPtr adminProgram =3D NULL; + g_autoptr(virNetServerProgram) logProgram =3D NULL; + g_autoptr(virNetServerProgram) adminProgram =3D NULL; char *remote_config_file =3D NULL; int statuswrite =3D -1; int ret =3D 1; @@ -916,26 +916,20 @@ int main(int argc, char **argv) { goto cleanup; } =20 - if (!(logProgram =3D virNetServerProgramNew(VIR_LOG_MANAGER_PROTOCOL_P= ROGRAM, - VIR_LOG_MANAGER_PROTOCOL_PRO= GRAM_VERSION, - virLogManagerProtocolProcs, - virLogManagerProtocolNProcs)= )) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + logProgram =3D virNetServerProgramNew(VIR_LOG_MANAGER_PROTOCOL_PROGRAM, + VIR_LOG_MANAGER_PROTOCOL_PROGRAM_V= ERSION, + virLogManagerProtocolProcs, + virLogManagerProtocolNProcs); if (virNetServerAddProgram(logSrv, logProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; goto cleanup; } =20 if (adminSrv !=3D NULL) { - if (!(adminProgram =3D virNetServerProgramNew(ADMIN_PROGRAM, - ADMIN_PROTOCOL_VERSION, - adminProcs, - adminNProcs))) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + adminProgram =3D virNetServerProgramNew(ADMIN_PROGRAM, + ADMIN_PROTOCOL_VERSION, + adminProcs, + adminNProcs); if (virNetServerAddProgram(adminSrv, adminProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; goto cleanup; @@ -971,8 +965,6 @@ int main(int argc, char **argv) { ret =3D 0; =20 cleanup: - virObjectUnref(logProgram); - virObjectUnref(adminProgram); virObjectUnref(logSrv); virObjectUnref(adminSrv); virLogDaemonFree(logDaemon); diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c index 3d3258eabe..2369704ac6 100644 --- a/src/lxc/lxc_controller.c +++ b/src/lxc/lxc_controller.c @@ -317,6 +317,8 @@ static void virLXCControllerFree(virLXCControllerPtr ct= rl) VIR_FREE(ctrl->nsFDs); virCgroupFree(&ctrl->cgroup); =20 + if (ctrl->prog) + g_object_unref(ctrl->prog); /* This must always be the last thing to be closed */ VIR_FORCE_CLOSE(ctrl->handshakeFd); VIR_FREE(ctrl); @@ -992,11 +994,10 @@ static int virLXCControllerSetupServer(virLXCControll= erPtr ctrl) virObjectUnref(svc); svc =3D NULL; =20 - if (!(ctrl->prog =3D virNetServerProgramNew(VIR_LXC_MONITOR_PROGRAM, - VIR_LXC_MONITOR_PROGRAM_VERS= ION, - virLXCMonitorProcs, - virLXCMonitorNProcs))) - goto error; + ctrl->prog =3D virNetServerProgramNew(VIR_LXC_MONITOR_PROGRAM, + VIR_LXC_MONITOR_PROGRAM_VERSION, + virLXCMonitorProcs, + virLXCMonitorNProcs); =20 if (!(ctrl->daemon =3D virNetDaemonNew()) || virNetDaemonAddServer(ctrl->daemon, srv) < 0) @@ -1008,6 +1009,8 @@ static int virLXCControllerSetupServer(virLXCControll= erPtr ctrl) =20 error: VIR_FREE(sockpath); + if (ctrl->prog) + g_clear_object(&ctrl->prog); virObjectUnref(srv); virObjectUnref(ctrl->daemon); ctrl->daemon =3D NULL; diff --git a/src/remote/remote_daemon.c b/src/remote/remote_daemon.c index 7eec599177..46b6b4fdc7 100644 --- a/src/remote/remote_daemon.c +++ b/src/remote/remote_daemon.c @@ -760,8 +760,8 @@ int main(int argc, char **argv) { virNetDaemonPtr dmn =3D NULL; virNetServerPtr srv =3D NULL; virNetServerPtr srvAdm =3D NULL; - virNetServerProgramPtr adminProgram =3D NULL; - virNetServerProgramPtr lxcProgram =3D NULL; + g_autoptr(virNetServerProgram) adminProgram =3D NULL; + g_autoptr(virNetServerProgram) lxcProgram =3D NULL; char *remote_config_file =3D NULL; int statuswrite =3D -1; int ret =3D 1; @@ -1038,37 +1038,28 @@ int main(int argc, char **argv) { remoteProcs[REMOTE_PROC_AUTH_SASL_STEP].needAuth =3D false; remoteProcs[REMOTE_PROC_AUTH_SASL_START].needAuth =3D false; remoteProcs[REMOTE_PROC_AUTH_POLKIT].needAuth =3D false; - if (!(remoteProgram =3D virNetServerProgramNew(REMOTE_PROGRAM, - REMOTE_PROTOCOL_VERSION, - remoteProcs, - remoteNProcs))) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + remoteProgram =3D virNetServerProgramNew(REMOTE_PROGRAM, + REMOTE_PROTOCOL_VERSION, + remoteProcs, + remoteNProcs); if (virNetServerAddProgram(srv, remoteProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; goto cleanup; } =20 - if (!(lxcProgram =3D virNetServerProgramNew(LXC_PROGRAM, - LXC_PROTOCOL_VERSION, - lxcProcs, - lxcNProcs))) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + lxcProgram =3D virNetServerProgramNew(LXC_PROGRAM, + LXC_PROTOCOL_VERSION, + lxcProcs, + lxcNProcs); if (virNetServerAddProgram(srv, lxcProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; goto cleanup; } =20 - if (!(qemuProgram =3D virNetServerProgramNew(QEMU_PROGRAM, - QEMU_PROTOCOL_VERSION, - qemuProcs, - qemuNProcs))) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + qemuProgram =3D virNetServerProgramNew(QEMU_PROGRAM, + QEMU_PROTOCOL_VERSION, + qemuProcs, + qemuNProcs); if (virNetServerAddProgram(srv, qemuProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; goto cleanup; @@ -1095,13 +1086,10 @@ int main(int argc, char **argv) { goto cleanup; } =20 - if (!(adminProgram =3D virNetServerProgramNew(ADMIN_PROGRAM, - ADMIN_PROTOCOL_VERSION, - adminProcs, - adminNProcs))) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + adminProgram =3D virNetServerProgramNew(ADMIN_PROGRAM, + ADMIN_PROTOCOL_VERSION, + adminProcs, + adminNProcs); if (virNetServerAddProgram(srvAdm, adminProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; goto cleanup; @@ -1213,11 +1201,7 @@ int main(int argc, char **argv) { virStateCleanup(); } =20 - virObjectUnref(adminProgram); virObjectUnref(srvAdm); - virObjectUnref(qemuProgram); - virObjectUnref(lxcProgram); - virObjectUnref(remoteProgram); virObjectUnref(srv); virObjectUnref(dmn); =20 diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon= _dispatch.c index c5506c2e11..c024211ea5 100644 --- a/src/remote/remote_daemon_dispatch.c +++ b/src/remote/remote_daemon_dispatch.c @@ -150,7 +150,8 @@ remoteEventCallbackFree(void *opaque) daemonClientEventCallbackPtr callback =3D opaque; if (!callback) return; - virObjectUnref(callback->program); + if (callback->program) + g_object_unref(callback->program); virObjectUnref(callback->client); VIR_FREE(callback); } @@ -4255,7 +4256,7 @@ remoteDispatchConnectDomainEventRegister(virNetServer= Ptr server G_GNUC_UNUSED, if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(remoteProgram); + callback->program =3D g_object_ref(remoteProgram); callback->eventID =3D VIR_DOMAIN_EVENT_ID_LIFECYCLE; callback->callbackID =3D -1; callback->legacy =3D true; @@ -4484,7 +4485,7 @@ remoteDispatchConnectDomainEventRegisterAny(virNetSer= verPtr server G_GNUC_UNUSED if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(remoteProgram); + callback->program =3D g_object_ref(remoteProgram); callback->eventID =3D args->eventID; callback->callbackID =3D -1; callback->legacy =3D true; @@ -4560,7 +4561,7 @@ remoteDispatchConnectDomainEventCallbackRegisterAny(v= irNetServerPtr server G_GNU if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(remoteProgram); + callback->program =3D g_object_ref(remoteProgram); callback->eventID =3D args->eventID; callback->callbackID =3D -1; ref =3D callback; @@ -6043,7 +6044,7 @@ remoteDispatchConnectNetworkEventRegisterAny(virNetSe= rverPtr server G_GNUC_UNUSE if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(remoteProgram); + callback->program =3D g_object_ref(remoteProgram); callback->eventID =3D args->eventID; callback->callbackID =3D -1; ref =3D callback; @@ -6164,7 +6165,7 @@ remoteDispatchConnectStoragePoolEventRegisterAny(virN= etServerPtr server G_GNUC_U if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(remoteProgram); + callback->program =3D g_object_ref(remoteProgram); callback->eventID =3D args->eventID; callback->callbackID =3D -1; ref =3D callback; @@ -6284,7 +6285,7 @@ remoteDispatchConnectNodeDeviceEventRegisterAny(virNe= tServerPtr server G_GNUC_UN if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(remoteProgram); + callback->program =3D g_object_ref(remoteProgram); callback->eventID =3D args->eventID; callback->callbackID =3D -1; ref =3D callback; @@ -6404,7 +6405,7 @@ remoteDispatchConnectSecretEventRegisterAny(virNetSer= verPtr server G_GNUC_UNUSED if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(remoteProgram); + callback->program =3D g_object_ref(remoteProgram); callback->eventID =3D args->eventID; callback->callbackID =3D -1; ref =3D callback; @@ -6519,7 +6520,7 @@ qemuDispatchConnectDomainMonitorEventRegister(virNetS= erverPtr server G_GNUC_UNUS if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(qemuProgram); + callback->program =3D g_object_ref(qemuProgram); callback->eventID =3D -1; callback->callbackID =3D -1; ref =3D callback; diff --git a/src/remote/remote_daemon_stream.c b/src/remote/remote_daemon_s= tream.c index 73e4d7befb..ec9667fe56 100644 --- a/src/remote/remote_daemon_stream.c +++ b/src/remote/remote_daemon_stream.c @@ -367,7 +367,7 @@ daemonCreateClientStream(virNetServerClientPtr client, =20 stream->refs =3D 1; stream->priv =3D priv; - stream->prog =3D virObjectRef(prog); + stream->prog =3D g_object_ref(prog); stream->procedure =3D header->proc; stream->serial =3D header->serial; stream->filterID =3D -1; @@ -399,7 +399,8 @@ int daemonFreeClientStream(virNetServerClientPtr client, VIR_DEBUG("client=3D%p, proc=3D%d, serial=3D%u", client, stream->procedure, stream->serial); =20 - virObjectUnref(stream->prog); + if (stream->prog) + g_object_unref(stream->prog); =20 msg =3D stream->rx; while (msg) { diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c index 242052754f..5e9124c7ee 100644 --- a/src/rpc/virnetserver.c +++ b/src/rpc/virnetserver.c @@ -154,13 +154,15 @@ static void virNetServerHandleJob(void *jobOpaque, vo= id *opaque) if (virNetServerProcessMsg(srv, job->client, job->prog, job->msg) < 0) goto error; =20 - virObjectUnref(job->prog); + if (job->prog) + g_object_unref(job->prog); virObjectUnref(job->client); VIR_FREE(job); return; =20 error: - virObjectUnref(job->prog); + if (job->prog) + g_object_unref(job->prog); virNetMessageFree(job->msg); virNetServerClientClose(job->client); virObjectUnref(job->client); @@ -218,14 +220,14 @@ virNetServerDispatchNewMessage(virNetServerClientPtr = client, job->msg =3D msg; =20 if (prog) { - job->prog =3D virObjectRef(prog); + job->prog =3D g_object_ref(prog); priority =3D virNetServerProgramGetPriority(prog, msg->header.= proc); } =20 if (virThreadPoolSendJob(srv->workers, priority, job) < 0) { virObjectUnref(client); VIR_FREE(job); - virObjectUnref(prog); + g_object_unref(prog); goto error; } } else { @@ -825,7 +827,7 @@ int virNetServerAddProgram(virNetServerPtr srv, if (VIR_EXPAND_N(srv->programs, srv->nprograms, 1) < 0) goto error; =20 - srv->programs[srv->nprograms-1] =3D virObjectRef(prog); + srv->programs[srv->nprograms-1] =3D g_object_ref(prog); =20 virObjectUnlock(srv); return 0; @@ -918,7 +920,7 @@ void virNetServerDispose(void *obj) VIR_FREE(srv->services); =20 for (i =3D 0; i < srv->nprograms; i++) - virObjectUnref(srv->programs[i]); + g_object_unref(srv->programs[i]); VIR_FREE(srv->programs); =20 for (i =3D 0; i < srv->nclients; i++) diff --git a/src/rpc/virnetserverprogram.c b/src/rpc/virnetserverprogram.c index 8df92fb8df..56c984ce13 100644 --- a/src/rpc/virnetserverprogram.c +++ b/src/rpc/virnetserverprogram.c @@ -35,7 +35,7 @@ VIR_LOG_INIT("rpc.netserverprogram"); =20 struct _virNetServerProgram { - virObject parent; + GObject parent; =20 unsigned program; unsigned version; @@ -44,32 +44,27 @@ struct _virNetServerProgram { }; =20 =20 -static virClassPtr virNetServerProgramClass; -static void virNetServerProgramDispose(void *obj); +G_DEFINE_TYPE(virNetServerProgram, vir_net_server_program, G_TYPE_OBJECT); +static void virNetServerProgramFinalize(GObject *obj); =20 -static int virNetServerProgramOnceInit(void) +static void vir_net_server_program_init(virNetServerProgram *prog G_GNUC_U= NUSED) { - if (!VIR_CLASS_NEW(virNetServerProgram, virClassForObject())) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(virNetServerProgram); +static void vir_net_server_program_class_init(virNetServerProgramClass *kl= ass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 + obj->finalize =3D virNetServerProgramFinalize; +} =20 virNetServerProgramPtr virNetServerProgramNew(unsigned program, unsigned version, virNetServerProgramProcPtr p= rocs, size_t nprocs) { - virNetServerProgramPtr prog; - - if (virNetServerProgramInitialize() < 0) - return NULL; - - if (!(prog =3D virObjectNew(virNetServerProgramClass))) - return NULL; + virNetServerProgramPtr prog =3D + VIR_NET_SERVER_PROGRAM(g_object_new(VIR_TYPE_NET_SERVER_PROGRAM, N= ULL)); =20 prog->program =3D program; prog->version =3D version; @@ -569,6 +564,7 @@ int virNetServerProgramSendStreamHole(virNetServerProgr= amPtr prog, } =20 =20 -void virNetServerProgramDispose(void *obj G_GNUC_UNUSED) +void virNetServerProgramFinalize(GObject *obj) { + G_OBJECT_CLASS(vir_net_server_program_parent_class)->finalize(obj); } diff --git a/src/rpc/virnetserverprogram.h b/src/rpc/virnetserverprogram.h index 851bbf0183..bcc10809d4 100644 --- a/src/rpc/virnetserverprogram.h +++ b/src/rpc/virnetserverprogram.h @@ -23,7 +23,8 @@ =20 #include "virnetmessage.h" #include "virnetserverclient.h" -#include "virobject.h" +#include "internal.h" +#include =20 typedef struct _virNetDaemon virNetDaemon; typedef virNetDaemon *virNetDaemonPtr; @@ -31,7 +32,12 @@ typedef virNetDaemon *virNetDaemonPtr; typedef struct _virNetServerService virNetServerService; typedef virNetServerService *virNetServerServicePtr; =20 -typedef struct _virNetServerProgram virNetServerProgram; +#define VIR_TYPE_NET_SERVER_PROGRAM vir_net_server_program_get_type() +G_DECLARE_FINAL_TYPE(virNetServerProgram, + vir_net_server_program, + VIR, + NET_SERVER_PROGRAM, + GObject); typedef virNetServerProgram *virNetServerProgramPtr; =20 typedef struct _virNetServerProgramProc virNetServerProgramProc; --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1585927013; cv=none; d=zohomail.com; s=zohoarc; b=LBeN0YemVjGHC9KilA3Qo5EfeP6gFVHjiHl4eaNoTAZ10bOxhMZZPq19EclfzV4dHYFBHk7WbiSj9pWt/5Rd/jHtVa2xQ1zCITZcTs3kH9lRKtYvvH9/Db7uDED8b7ARVPTWeZdZ7j4Eud2VrLE5KH9XNqFyRvm1hbnnHg++lnI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927013; 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=4NlCfFsv04HwwxvJxn4O7B55ZaqTlLptehyowcbMuIA=; b=A5Il26LC14HPKVY/C92Wiwb4XF9KpRHOGKgSUXysXMFuIq/JRCZcB+4AUSfXBZfsN7sMeqgaTlolSf/aHaAjsVnw8aa9avZbqPZUZ3NDqT2uV8ZJnwnB30wzi5LY3+Fl5U+hP2KSaJHQX07ngGGZ5uJiTAAdZ3EvdgL7W1EFZJ0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1585927013439644.3862731527715; Fri, 3 Apr 2020 08:16:53 -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-129-8_de5rurMNOMpGNZBwWFgA-1; Fri, 03 Apr 2020 11:16:49 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2A54BDBAB; Fri, 3 Apr 2020 15:16:42 +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 0018A5C557; Fri, 3 Apr 2020 15:16:41 +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 A6D2A18089CE; Fri, 3 Apr 2020 15:16:41 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FGUdJ028090 for ; Fri, 3 Apr 2020 11:16:30 -0400 Received: by smtp.corp.redhat.com (Postfix) id 1396D2166B2E; Fri, 3 Apr 2020 15:16:30 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0FC1D2166B2C for ; Fri, 3 Apr 2020 15:16:30 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (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 E521D101A55F for ; Fri, 3 Apr 2020 15:16:29 +0000 (UTC) Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-156-zCxWJIfjP9OZFr2vMwP_fQ-1; Fri, 03 Apr 2020 11:16:27 -0400 Received: by mail-wm1-f65.google.com with SMTP id d202so8150952wmd.1 for ; Fri, 03 Apr 2020 08:16:26 -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.16.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927012; 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=4NlCfFsv04HwwxvJxn4O7B55ZaqTlLptehyowcbMuIA=; b=E8/w19zmmVndbwhSTH4X4wdQvxCx0pokoC9BFkqjp3Ay9NlL9hnfZ+g3sTbpsXUwklkcsJ MNPp9ZqVZ6Zehww4PcPQ89z4+j+jesG2OXDbcTg9uxJ+yC/9FrEXxIZ29fnjt6cLBi7BIm tC05MA7PXGBBsQgO4pEkOV9bmlnZzZk= X-MC-Unique: 8_de5rurMNOMpGNZBwWFgA-1 X-MC-Unique: zCxWJIfjP9OZFr2vMwP_fQ-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=ZPFCuvJCsYSSgvymmBSvXJGbuZF8IumDG63WXBzRe2Y=; b=dkYn+RVUFFwVF83gl5O9zSukZLhUcYvkYS9uBi6B3kAerRx/yzySOKcFPyuAtL5wWk LKhPMs0WbsixvKhWplmBxdahDAHkGCzV3fdM2aSyVfeI+C+t5FzGLz1DRHqIyjIlhCYz 419yBDoZWuLZQXve+hPnSSgai0j1iP2uV6qiM+rv3mqjn7CAOHxm/Rrmf2jbqOErtIaY SA4N0Lycztj2RuhJLJFhiPwv+HBTtZGGF7YvnPoR2h5D1yz2jNhmygliy8XNVTMIXXZf +2ywG7IiDGADcnWA45gOa67yFyWLoZ4w3JyHsP8xmf9DyKllrhG7IQgxY+XlLQjqlqsM Nuow== X-Gm-Message-State: AGi0PuYcHDmi4rNxTJA2yX5I/apXf5+adixWX+RoOZ4qcVLQHaUU8Cdb 4T0pbvJRvi7QZ7EFdakKVDu47dZbKY4= X-Google-Smtp-Source: APiQypIOzRQ+d2K75SP1Yt43HhVKYBrUUQOHJiAHABdcuSrkNX6xqgayhn0q3DCv0l9Y1jX1mcuLEA== X-Received: by 2002:a1c:7301:: with SMTP id d1mr9629521wmb.26.1585926985125; Fri, 03 Apr 2020 08:16:25 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 06/36] conf: convert virDomainXMLOption to GObject Date: Fri, 3 Apr 2020 17:15:34 +0200 Message-Id: <20200403151604.106616-7-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.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGUdJ028090 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.16 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/bhyve/bhyve_driver.c | 3 ++- src/conf/domain_conf.c | 29 +++++++++++++++++++---------- src/conf/domain_conf.h | 9 +++++++++ src/esx/esx_driver.c | 3 ++- src/libxl/libxl_driver.c | 3 ++- src/lxc/lxc_controller.c | 3 ++- src/lxc/lxc_driver.c | 3 ++- src/openvz/openvz_conf.c | 3 ++- src/qemu/qemu_driver.c | 3 ++- src/qemu/qemu_process.c | 15 +++++---------- src/security/virt-aa-helper.c | 3 ++- src/test/test_driver.c | 3 ++- src/vbox/vbox_common.c | 3 ++- src/vmware/vmware_conf.c | 3 ++- src/vz/vz_driver.c | 3 ++- tests/bhyveargv2xmltest.c | 2 +- tests/bhyvexml2argvtest.c | 2 +- tests/bhyvexml2xmltest.c | 2 +- tests/domainconftest.c | 3 ++- tests/genericxml2xmltest.c | 3 ++- tests/openvzutilstest.c | 2 +- tests/testutilslxc.c | 3 ++- tests/testutilsqemu.c | 3 ++- tests/testutilsxen.c | 3 ++- tests/vmx2xmltest.c | 3 ++- tests/xml2vmxtest.c | 6 ++++-- 26 files changed, 77 insertions(+), 44 deletions(-) diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index 4ca3666700..2224395128 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -1183,7 +1183,8 @@ bhyveStateCleanup(void) virObjectUnref(bhyve_driver->domains); if (bhyve_driver->caps) g_object_unref(bhyve_driver->caps); - virObjectUnref(bhyve_driver->xmlopt); + if (bhyve_driver->xmlopt) + g_object_unref(bhyve_driver->xmlopt); virSysinfoDefFree(bhyve_driver->hostsysinfo); virObjectUnref(bhyve_driver->closeCallbacks); virObjectUnref(bhyve_driver->domainEventState); diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 425a6bccb6..38a0c04c1f 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -71,7 +71,7 @@ VIR_LOG_INIT("conf.domain_conf"); /* This structure holds various callbacks and data needed * while parsing and creating domain XMLs */ struct _virDomainXMLOption { - virObject parent; + GObject parent; =20 /* XML parser callbacks and defaults */ virDomainDefParserConfig config; @@ -1273,18 +1273,26 @@ VIR_ENUM_IMPL(virDomainLaunchSecurity, ); =20 static virClassPtr virDomainObjClass; -static virClassPtr virDomainXMLOptionClass; static void virDomainObjDispose(void *obj); -static void virDomainXMLOptionDispose(void *obj); +G_DEFINE_TYPE(virDomainXMLOption, vir_domain_xml_option, G_TYPE_OBJECT); +static void virDomainXMLOptionFinalize(GObject *obj); + +static void vir_domain_xml_option_init(virDomainXMLOption *option G_GNUC_U= NUSED) +{ +} + +static void vir_domain_xml_option_class_init(virDomainXMLOptionClass *klas= s) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virDomainXMLOptionFinalize; +} =20 static int virDomainObjOnceInit(void) { if (!VIR_CLASS_NEW(virDomainObj, virClassForObjectLockable())) return -1; =20 - if (!VIR_CLASS_NEW(virDomainXMLOption, virClassForObject())) - return -1; - return 0; } =20 @@ -1292,12 +1300,14 @@ VIR_ONCE_GLOBAL_INIT(virDomainObj); =20 =20 static void -virDomainXMLOptionDispose(void *obj) +virDomainXMLOptionFinalize(GObject *obj) { - virDomainXMLOptionPtr xmlopt =3D obj; + virDomainXMLOptionPtr xmlopt =3D VIR_DOMAIN_XML_OPTION(obj); =20 if (xmlopt->config.privFree) (xmlopt->config.privFree)(xmlopt->config.priv); + + G_OBJECT_CLASS(vir_domain_xml_option_parent_class)->finalize(obj); } =20 /** @@ -1424,8 +1434,7 @@ virDomainXMLOptionNew(virDomainDefParserConfigPtr con= fig, if (virDomainObjInitialize() < 0) return NULL; =20 - if (!(xmlopt =3D virObjectNew(virDomainXMLOptionClass))) - return NULL; + xmlopt =3D VIR_DOMAIN_XML_OPTION(g_object_new(VIR_TYPE_DOMAIN_XML_OPTI= ON, NULL)); =20 if (priv) xmlopt->privateData =3D *priv; diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 33875d942f..7e2792ae62 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -58,6 +58,8 @@ #include "virresctrl.h" #include "virenum.h" =20 +#include + /* Flags for the 'type' field in virDomainDeviceDef */ typedef enum { VIR_DOMAIN_DEVICE_NONE =3D 0, @@ -2800,6 +2802,13 @@ struct _virDomainABIStability { virDomainABIStabilityDomain domain; }; =20 +#define VIR_TYPE_DOMAIN_XML_OPTION vir_domain_xml_option_get_type() +G_DECLARE_FINAL_TYPE(virDomainXMLOption, + vir_domain_xml_option, + VIR, + DOMAIN_XML_OPTION, + GObject); + virDomainXMLOptionPtr virDomainXMLOptionNew(virDomainDefParserConfigPtr co= nfig, virDomainXMLPrivateDataCallbac= ksPtr priv, virXMLNamespacePtr xmlns, diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index f893d112d0..354f5cbe69 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -71,7 +71,8 @@ esxFreePrivate(esxPrivate **priv) esxUtil_FreeParsedUri(&(*priv)->parsedUri); if ((*priv)->caps) g_object_unref((*priv)->caps); - virObjectUnref((*priv)->xmlopt); + if ((*priv)->xmlopt) + g_object_unref((*priv)->xmlopt); VIR_FREE(*priv); } =20 diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 7ec4fcc3d1..6564b45ee4 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -507,7 +507,8 @@ libxlStateCleanup(void) return -1; =20 virObjectUnref(libxl_driver->hostdevMgr); - virObjectUnref(libxl_driver->xmlopt); + if (libxl_driver->xmlopt) + g_object_unref(libxl_driver->xmlopt); virObjectUnref(libxl_driver->domains); virPortAllocatorRangeFree(libxl_driver->reservedGraphicsPorts); virPortAllocatorRangeFree(libxl_driver->migrationPorts); diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c index 2369704ac6..4c038c6228 100644 --- a/src/lxc/lxc_controller.c +++ b/src/lxc/lxc_controller.c @@ -180,7 +180,8 @@ virLXCControllerDriverFree(virLXCDriverPtr driver) { if (!driver) return; - virObjectUnref(driver->xmlopt); + if (driver->xmlopt) + g_object_unref(driver->xmlopt); if (driver->caps) g_object_unref(driver->caps); virMutexDestroy(&driver->lock); diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 1c59ddef6d..5da9ec7c58 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -1614,7 +1614,8 @@ static int lxcStateCleanup(void) if (lxc_driver->caps) g_object_unref(lxc_driver->caps); virObjectUnref(lxc_driver->securityManager); - virObjectUnref(lxc_driver->xmlopt); + if (lxc_driver->xmlopt) + g_object_unref(lxc_driver->xmlopt); =20 if (lxc_driver->lockFD !=3D -1) virPidFileRelease(lxc_driver->config->stateDir, "driver", lxc_driv= er->lockFD); diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c index 1f70bfc3d9..a62e536aa0 100644 --- a/src/openvz/openvz_conf.c +++ b/src/openvz/openvz_conf.c @@ -479,7 +479,8 @@ openvzFreeDriver(struct openvz_driver *driver) if (!driver) return; =20 - virObjectUnref(driver->xmlopt); + if (driver->xmlopt) + g_object_unref(driver->xmlopt); virObjectUnref(driver->domains); if (driver->caps) g_object_unref(driver->caps); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 99a5058033..73f1037e8a 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1131,7 +1131,8 @@ qemuStateCleanup(void) virObjectUnref(qemu_driver->securityManager); virObjectUnref(qemu_driver->domainEventState); virObjectUnref(qemu_driver->qemuCapsCache); - virObjectUnref(qemu_driver->xmlopt); + if (qemu_driver->xmlopt) + g_object_unref(qemu_driver->xmlopt); virCPUDefFree(qemu_driver->hostcpu); virCapabilitiesHostNUMAUnref(qemu_driver->hostnuma); if (qemu_driver->caps) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 3f28c5245c..ef34dd8cfd 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -8567,9 +8567,8 @@ qemuProcessQMPInitMonitor(qemuMonitorPtr mon) static int qemuProcessQMPConnectMonitor(qemuProcessQMPPtr proc) { - virDomainXMLOptionPtr xmlopt =3D NULL; + g_autoptr(virDomainXMLOption) xmlopt =3D NULL; virDomainChrSourceDef monConfig; - int ret =3D -1; =20 VIR_DEBUG("proc=3D%p, emulator=3D%s, proc->pid=3D%lld", proc, proc->binary, (long long)proc->pid); @@ -8581,25 +8580,21 @@ qemuProcessQMPConnectMonitor(qemuProcessQMPPtr proc) if (!(xmlopt =3D virDomainXMLOptionNew(NULL, NULL, NULL, NULL, NULL)) = || !(proc->vm =3D virDomainObjNew(xmlopt)) || !(proc->vm->def =3D virDomainDefNew())) - goto cleanup; + return -1; =20 proc->vm->pid =3D proc->pid; =20 if (!(proc->mon =3D qemuMonitorOpen(proc->vm, &monConfig, true, 0, virEventThreadGetContext(proc->event= Thread), &callbacks, NULL))) - goto cleanup; + return -1; =20 virObjectLock(proc->mon); =20 if (qemuProcessQMPInitMonitor(proc->mon) < 0) - goto cleanup; - - ret =3D 0; + return -1; =20 - cleanup: - virObjectUnref(xmlopt); - return ret; + return 0; } =20 =20 diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c index 7b0ae6acad..cbf4a567d5 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -81,7 +81,8 @@ vahDeinit(vahControl * ctl) VIR_FREE(ctl->def); if (ctl->caps) g_object_unref(ctl->caps); - virObjectUnref(ctl->xmlopt); + if (ctl->xmlopt) + g_object_unref(ctl->xmlopt); VIR_FREE(ctl->files); VIR_FREE(ctl->virtType); VIR_FREE(ctl->os); diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 00c3d34a81..1696b956fe 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -160,7 +160,8 @@ testDriverDispose(void *obj) =20 if (driver->caps) g_object_unref(driver->caps); - virObjectUnref(driver->xmlopt); + if (driver->xmlopt) + g_object_unref(driver->xmlopt); virObjectUnref(driver->domains); virNodeDeviceObjListFree(driver->devs); virObjectUnref(driver->networks); diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index 0e009a5739..60018668ca 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -124,7 +124,8 @@ vboxDriverDispose(void *obj) =20 if (driver->caps) g_object_unref(driver->caps); - virObjectUnref(driver->xmlopt); + if (driver->xmlopt) + g_object_unref(driver->xmlopt); } =20 static int diff --git a/src/vmware/vmware_conf.c b/src/vmware/vmware_conf.c index ee21e96971..e5e3ee33a5 100644 --- a/src/vmware/vmware_conf.c +++ b/src/vmware/vmware_conf.c @@ -56,7 +56,8 @@ vmwareFreeDriver(struct vmware_driver *driver) virObjectUnref(driver->domains); if (driver->caps) g_object_unref(driver->caps); - virObjectUnref(driver->xmlopt); + if (driver->xmlopt) + g_object_unref(driver->xmlopt); VIR_FREE(driver->vmrun); VIR_FREE(driver); } diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index 517259131d..ab06071731 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -150,7 +150,8 @@ static void vzDriverDispose(void * obj) virObjectUnref(driver->domains); if (driver->caps) g_object_unref(driver->caps); - virObjectUnref(driver->xmlopt); + if (driver->xmlopt) + g_object_unref(driver->xmlopt); virObjectUnref(driver->domainEventState); virSysinfoDefFree(driver->hostsysinfo); } diff --git a/tests/bhyveargv2xmltest.c b/tests/bhyveargv2xmltest.c index 5de5b48a8e..3cc6ca8b38 100644 --- a/tests/bhyveargv2xmltest.c +++ b/tests/bhyveargv2xmltest.c @@ -196,7 +196,7 @@ mymain(void) DO_TEST_FAIL("extraargs"); =20 g_object_unref(driver.caps); - virObjectUnref(driver.xmlopt); + g_object_unref(driver.xmlopt); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c index 9ea0d76f06..48abb436d0 100644 --- a/tests/bhyvexml2argvtest.c +++ b/tests/bhyvexml2argvtest.c @@ -250,7 +250,7 @@ mymain(void) DO_TEST_FAILURE("cputopology"); =20 g_object_unref(driver.caps); - virObjectUnref(driver.xmlopt); + g_object_unref(driver.xmlopt); virPortAllocatorRangeFree(driver.remotePorts); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/tests/bhyvexml2xmltest.c b/tests/bhyvexml2xmltest.c index cb0f6022c3..add96d4859 100644 --- a/tests/bhyvexml2xmltest.c +++ b/tests/bhyvexml2xmltest.c @@ -128,7 +128,7 @@ mymain(void) DO_TEST_DIFFERENT("input-xhci-tablet"); =20 g_object_unref(driver.caps); - virObjectUnref(driver.xmlopt); + g_object_unref(driver.xmlopt); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/tests/domainconftest.c b/tests/domainconftest.c index ada397b925..c19da1ae97 100644 --- a/tests/domainconftest.c +++ b/tests/domainconftest.c @@ -105,7 +105,8 @@ mymain(void) =20 if (caps) g_object_unref(caps); - virObjectUnref(xmlopt); + if (xmlopt) + g_object_unref(xmlopt); =20 cleanup: return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; diff --git a/tests/genericxml2xmltest.c b/tests/genericxml2xmltest.c index 0659ca1b28..339d1478a3 100644 --- a/tests/genericxml2xmltest.c +++ b/tests/genericxml2xmltest.c @@ -197,7 +197,8 @@ mymain(void) =20 if (caps) g_object_unref(caps); - virObjectUnref(xmlopt); + if (xmlopt) + g_object_unref(xmlopt); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/tests/openvzutilstest.c b/tests/openvzutilstest.c index 48de2d1c7d..2fd21fc718 100644 --- a/tests/openvzutilstest.c +++ b/tests/openvzutilstest.c @@ -131,7 +131,7 @@ testReadNetworkConf(const void *data G_GNUC_UNUSED) result =3D 0; =20 cleanup: - virObjectUnref(driver.xmlopt); + g_object_unref(driver.xmlopt); g_object_unref(driver.caps); VIR_FREE(actual); virDomainDefFree(def); diff --git a/tests/testutilslxc.c b/tests/testutilslxc.c index 2f28975332..ad2afdd683 100644 --- a/tests/testutilslxc.c +++ b/tests/testutilslxc.c @@ -76,7 +76,8 @@ testLXCDriverInit(void) void testLXCDriverFree(virLXCDriverPtr driver) { - virObjectUnref(driver->xmlopt); + if (driver->xmlopt) + g_object_unref(driver->xmlopt); if (driver->caps) g_object_unref(driver->caps); virMutexDestroy(&driver->lock); diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c index dd8143ff55..a37865bc14 100644 --- a/tests/testutilsqemu.c +++ b/tests/testutilsqemu.c @@ -307,7 +307,8 @@ void qemuTestDriverFree(virQEMUDriver *driver) virFileDeleteTree(driver->config->configDir); } virObjectUnref(driver->qemuCapsCache); - virObjectUnref(driver->xmlopt); + if (driver->xmlopt) + g_object_unref(driver->xmlopt); if (driver->caps) g_object_unref(driver->caps); virObjectUnref(driver->config); diff --git a/tests/testutilsxen.c b/tests/testutilsxen.c index 7da90cdd1e..6b6b0bf038 100644 --- a/tests/testutilsxen.c +++ b/tests/testutilsxen.c @@ -112,7 +112,8 @@ libxlDriverPrivatePtr testXLInitDriver(void) void testXLFreeDriver(libxlDriverPrivatePtr driver) { virObjectUnref(driver->config); - virObjectUnref(driver->xmlopt); + if (driver->xmlopt) + g_object_unref(driver->xmlopt); virMutexDestroy(&driver->lock); g_free(driver); } diff --git a/tests/vmx2xmltest.c b/tests/vmx2xmltest.c index b5c557fe33..c87b60fc78 100644 --- a/tests/vmx2xmltest.c +++ b/tests/vmx2xmltest.c @@ -282,7 +282,8 @@ mymain(void) DO_TEST("datacenterpath", "datacenterpath"); =20 g_object_unref(caps); - virObjectUnref(xmlopt); + if (xmlopt) + g_object_unref(xmlopt); =20 return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/tests/xml2vmxtest.c b/tests/xml2vmxtest.c index d6c7eb4f53..735df01e56 100644 --- a/tests/xml2vmxtest.c +++ b/tests/xml2vmxtest.c @@ -61,7 +61,8 @@ testCapsInit(void) failure: if (caps) g_clear_object(&caps); - virObjectUnref(xmlopt); + if (xmlopt) + g_object_unref(xmlopt); } =20 static int @@ -292,7 +293,8 @@ mymain(void) DO_TEST("datacenterpath", "datacenterpath", 4); =20 g_object_unref(caps); - virObjectUnref(xmlopt); + if (xmlopt) + g_object_unref(xmlopt); =20 return result =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; } --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927011; cv=none; d=zohomail.com; s=zohoarc; b=Iq0WD3Kt4LE3LOln9rQrxP2CmqMWqJTysllpMgx3Rcie9WOTh8t1rOwhv5O/9LwBM3kYT9VpubH6YgZ1XN+Pl1U7LsO8kU52X7ockLdkHwb994YfPCdesW7aJoJQky4+pzbswVV76ildIsQ5aY0p+b+PFHKyXfwWH0L6YBH6NLg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927011; 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=afc1+sNRDb7pIel5shd6XphoKQKUgWalJ16i2vXqVmA=; b=NBye72VRKs6hCFc0h6rgychjjNafX9OINF8uM+w3CsvHkxgIzasAsuYjL0gLcfpJEu9vb3CQbQQ2eSxqlmjPYtQjUeSwMtMo6CvP93YRPupBx/iuUZUBRxmctctHNV1Z+FsSsmyvoAzJHqx0XSPJS7XQXn3SeooZ4Q4nVW34LtI= 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 1585927011887266.748128672499; Fri, 3 Apr 2020 08:16:51 -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-215-xJoO766aPbmdrY8Ddf3Ebg-1; Fri, 03 Apr 2020 11:16:48 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2EEF0802690; Fri, 3 Apr 2020 15:16:42 +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 085741147DB; Fri, 3 Apr 2020 15:16:42 +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 AEFAC18089D8; Fri, 3 Apr 2020 15:16:41 +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 033FGVhW028099 for ; Fri, 3 Apr 2020 11:16:31 -0400 Received: by smtp.corp.redhat.com (Postfix) id 43C622022EB2; Fri, 3 Apr 2020 15:16:31 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 400DB2022EB1 for ; Fri, 3 Apr 2020 15:16:31 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (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 25690800297 for ; Fri, 3 Apr 2020 15:16:31 +0000 (UTC) Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-419-oyH4vwcpOByvFyEew74Bnw-1; Fri, 03 Apr 2020 11:16:28 -0400 Received: by mail-wm1-f41.google.com with SMTP id d77so7533303wmd.3 for ; Fri, 03 Apr 2020 08:16:27 -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.16.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927010; 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=afc1+sNRDb7pIel5shd6XphoKQKUgWalJ16i2vXqVmA=; b=TmVEktNLkHyi9DEhuVTeUqawc6B7+TMWCWX/zj6tYkUFKxeR0wqj8DpcQ5Uh2zKZRrWg32 H601XAJ8VCOe3bJmHfjngjVz2I+7U1R4zIH2SQWOHSmfMVQg2YwtHr2FePJWivU6Lkb7HH rO4v432JYIWqhtXka4SESc8R4RBsMMU= X-MC-Unique: xJoO766aPbmdrY8Ddf3Ebg-1 X-MC-Unique: oyH4vwcpOByvFyEew74Bnw-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=wCzbKQo27HrbzO1WU/imQkTnwBf3nkWN2RDFaUzrHUg=; b=N8ZxpWhqfySeC2WDVdmILuinauczQoTtKi4bnkOjVmFuSoAHTn2Zjg7QVFVdx4/4Wb RmYmxqXVVWY/Nmqr3n6XBj+qKk2D8qmZYrIA/cIODRqY0JqI2wfjV2RkhDtQzfE+vYtD OWDBS/svaZH0Rj0mSDLwYU42HBgyY5uMmFgIHzGPP3zm/qciQ6kqg+ytkWApgS3nndBW HZ2nk3My5WUL2Y8hDX93hxyRDsKNJ9A9gEhBWk5G2xurSFuTSpQxrzZM9r0r6oHvXEhP hVkhEJTBP/VRUFXXL+l0PvKEa4O4oTuqzufaOSOOXX2RrZlqnUFWi/LXj1IfmWdgTS4s 2AFA== X-Gm-Message-State: AGi0PuYqUFLcGNxG/dCkiXaq3sApIeD9zj2Gl3lPyrHIaE8VCloMutCt jyNrAsNrEIJ1fYZBuxyaUI/xRH6irnQ= X-Google-Smtp-Source: APiQypJdeSVqpQVopf6zPqrLC8BDkL8IgHJh584v43Uh/wBVEVfoIMU2xQjiB7vJCaaYotMwkFRhYQ== X-Received: by 2002:a1c:b7d7:: with SMTP id h206mr9324785wmf.143.1585926986575; Fri, 03 Apr 2020 08:16:26 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 07/36] bhyve: convert bhyveMonitor to GObject Date: Fri, 3 Apr 2020 17:15:35 +0200 Message-Id: <20200403151604.106616-8-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.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGVhW028099 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.11 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/bhyve/bhyve_monitor.c | 35 +++++++++++++++++++---------------- src/bhyve/bhyve_monitor.h | 3 ++- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/bhyve/bhyve_monitor.c b/src/bhyve/bhyve_monitor.c index e5cd39a086..4609e3c53a 100644 --- a/src/bhyve/bhyve_monitor.c +++ b/src/bhyve/bhyve_monitor.c @@ -39,7 +39,7 @@ VIR_LOG_INIT("bhyve.bhyve_monitor"); =20 struct _bhyveMonitor { - virObject parent; + GObject parent; =20 bhyveConnPtr driver; virDomainObjPtr vm; @@ -48,34 +48,38 @@ struct _bhyveMonitor { bool reboot; }; =20 -static virClassPtr bhyveMonitorClass; +G_DEFINE_TYPE(bhyveMonitor, bhyve_monitor, G_TYPE_OBJECT); =20 static void -bhyveMonitorDispose(void *obj) +bhyveMonitorFinalize(GObject *obj) { - bhyveMonitorPtr mon =3D obj; + bhyveMonitorPtr mon =3D BHYVE_MONITOR(obj); =20 VIR_FORCE_CLOSE(mon->kq); virObjectUnref(mon->vm); + + G_OBJECT_CLASS(bhyve_monitor_parent_class)->finalize(obj); } =20 -static int -bhyveMonitorOnceInit(void) +static void +bhyve_monitor_init(bhyveMonitor *mon G_GNUC_UNUSED) { - if (!VIR_CLASS_NEW(bhyveMonitor, virClassForObject())) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(bhyveMonitor); +static void +bhyve_monitor_class_init(bhyveMonitorClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D bhyveMonitorFinalize; +} =20 static void bhyveMonitorIO(int, int, int, void *); =20 static bool bhyveMonitorRegister(bhyveMonitorPtr mon) { - virObjectRef(mon); + g_object_ref(mon); mon->watch =3D virEventAddHandle(mon->kq, VIR_EVENT_HANDLE_READABLE | VIR_EVENT_HANDLE_ERROR | @@ -85,7 +89,7 @@ bhyveMonitorRegister(bhyveMonitorPtr mon) virObjectFreeCallback); if (mon->watch < 0) { VIR_DEBUG("failed to add event handle for mon %p", mon); - virObjectUnref(mon); + g_object_unref(mon); return false; } return true; @@ -181,8 +185,7 @@ bhyveMonitorOpenImpl(virDomainObjPtr vm, bhyveConnPtr d= river) if (bhyveMonitorInitialize() < 0) return NULL; =20 - if (!(mon =3D virObjectNew(bhyveMonitorClass))) - return NULL; + mon =3D BHYVE_MONITOR(g_object_new(BHYVE_TYPE_MONITOR, NULL)); =20 mon->driver =3D driver; mon->reboot =3D false; @@ -238,5 +241,5 @@ bhyveMonitorClose(bhyveMonitorPtr mon) VIR_DEBUG("cleaning up bhyveMonitor %p", mon); =20 bhyveMonitorUnregister(mon); - virObjectUnref(mon); + g_object_unref(mon); } diff --git a/src/bhyve/bhyve_monitor.h b/src/bhyve/bhyve_monitor.h index 175cc87192..dcc6929696 100644 --- a/src/bhyve/bhyve_monitor.h +++ b/src/bhyve/bhyve_monitor.h @@ -24,7 +24,8 @@ #include "domain_conf.h" #include "bhyve_utils.h" =20 -typedef struct _bhyveMonitor bhyveMonitor; +#define BHYVE_TYPE_MONITOR bhyve_monitor_get_type() +G_DECLARE_FINAL_TYPE(bhyveMonitor, bhyve_monitor, BHYVE, MONITOR, GObject); typedef bhyveMonitor *bhyveMonitorPtr; =20 bhyveMonitorPtr bhyveMonitorOpen(virDomainObjPtr vm, bhyveConnPtr driver); --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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=1585927016; cv=none; d=zohomail.com; s=zohoarc; b=lbON9k0t4+MG3tZkQmAk4CM1S/HxY34/V4GL9Mftv8alMVeiblFOVbx51nu1NpDD+NGU+gzaLDSXLQamhMRGcY5THdeRYcn0BEtX39i8ttu4gsAB6uz6fsz87ZL57yQzZ4HHXfeMmVrSk6Vi9DlOhi8O7RxCZLlc7nUSf7WrQ0U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927016; 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=36eHbUg7X5WnFqqSH0MpCs4JIREYXsNym8yHqdpeMcA=; b=md1UmQs/F/clAWPiMKFPSQt44DnqxZycPciszmzT+UowuHfzGaIO3b+QJSosVNbOL2E1Ar8YEO1ItYCMoqpd+bD6QhTSBvmdWpMWbScUFUEhCeQbUK6QJVTf280SmeOiYtVxaYn5AzH1FIWUu/b5cNX2KlI5wFltE+FVIMhmWng= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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-delivery-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 15859270168136.7360635875216985; Fri, 3 Apr 2020 08:16:56 -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-314-w4uM3lBzOzSEinG-jV4P4g-1; Fri, 03 Apr 2020 11:16:51 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D4A3D1084433; Fri, 3 Apr 2020 15:16:45 +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 A918389F0A; Fri, 3 Apr 2020 15:16:45 +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 6120F180880D; Fri, 3 Apr 2020 15:16:45 +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 033FGVof028115 for ; Fri, 3 Apr 2020 11:16:31 -0400 Received: by smtp.corp.redhat.com (Postfix) id B71DC2028DCC; Fri, 3 Apr 2020 15:16:31 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B2EA72028DCB for ; Fri, 3 Apr 2020 15:16:31 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (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 9708D800897 for ; Fri, 3 Apr 2020 15:16:31 +0000 (UTC) Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-139-7H-gaZR2NjyRW5gvl4zbCA-1; Fri, 03 Apr 2020 11:16:29 -0400 Received: by mail-wm1-f67.google.com with SMTP id c81so7516757wmd.4 for ; Fri, 03 Apr 2020 08:16:28 -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.16.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927014; 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=36eHbUg7X5WnFqqSH0MpCs4JIREYXsNym8yHqdpeMcA=; b=bytaDakIk9aTfqswulz+INoOuHIGuddttDyTtxFCvesvX1QjGAHbLx27ecWQSoVQkMGSD0 /55/8YlMMTfwsCM8FCRprMXFy1SS7lfvGW53q+X1cH7TtHYuECMR8s7BSCVpCy4voPH3Vs C1BMpCg0uw9qseSmqQKWbDT9YMPaX5w= X-MC-Unique: w4uM3lBzOzSEinG-jV4P4g-1 X-MC-Unique: 7H-gaZR2NjyRW5gvl4zbCA-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=3LJUjAQOTlp/MruWNBjkBD7nHw65OZRBfB7uMReITTQ=; b=MxK6OxIUG4WXSxXjtJR8SKUeuqgZCe7lqTOex0NMj+DwYrt7b1cdqxY/FGtc6F1Yab vu6lErvJKE7IuVr+JKI9DmMgzRBgV1OmGznD0/iL0Fe6SfjLmMSC+2MNVZGvfP1DAs39 /lpG1lsFQygdQ/H89EcYdv6zYlNgYCYv74qqSpxJIPXSUH9Hh3g8q7EG3dGvG09Nt7mX nvsJBUtGozYnCZvrmKIuvYRlC1COcboSI7IGO9/e2fsbM5Qoa9BLerSTAQiunSwsMVtA GHnMAcZ56iE8JNSPpReljBHnG73pIjQoQizmuPV3N9rNuu7zyw8ha6E9olzB6uEs7qZV rN0Q== X-Gm-Message-State: AGi0PuZHKwjUU/0CxzFkaDv2zxji8Z2ETKq478GIyprH89BSuaOsOM2N urbvfbpiAxbr4xXP4ziIF5XIxusnM4Y= X-Google-Smtp-Source: APiQypK5Mv8kbty2XoOehBXiFERkOb7dCYthDivaMF7vwzL2blog6t/CcD36HcZDKvA5ugQjbw4F7g== X-Received: by 2002:a1c:1942:: with SMTP id 63mr9663004wmz.133.1585926987740; Fri, 03 Apr 2020 08:16:27 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 08/36] bhyve: convert virBhyveDriverConfig to GObject Date: Fri, 3 Apr 2020 17:15:36 +0200 Message-Id: <20200403151604.106616-9-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.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGVof028115 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.11 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/bhyve/bhyve_capabilities.c | 3 +-- src/bhyve/bhyve_conf.c | 34 +++++++++++++++++----------------- src/bhyve/bhyve_driver.c | 3 ++- src/bhyve/bhyve_utils.h | 11 +++++++++-- 4 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/bhyve/bhyve_capabilities.c b/src/bhyve/bhyve_capabilities.c index 66442e50ba..00f7613594 100644 --- a/src/bhyve/bhyve_capabilities.c +++ b/src/bhyve/bhyve_capabilities.c @@ -131,7 +131,7 @@ virBhyveDomainCapsBuild(bhyveConnPtr conn, DIR *dir; struct dirent *entry; size_t firmwares_alloc =3D 0; - virBhyveDriverConfigPtr cfg =3D virBhyveDriverGetConfig(conn); + g_autoptr(virBhyveDriverConfig) cfg =3D virBhyveDriverGetConfig(conn); const char *firmware_dir =3D cfg->firmwareDir; virDomainCapsStringValuesPtr firmwares =3D NULL; =20 @@ -167,7 +167,6 @@ virBhyveDomainCapsBuild(bhyveConnPtr conn, cleanup: VIR_FREE(firmwares); VIR_DIR_CLOSE(dir); - virObjectUnref(cfg); return caps; } =20 diff --git a/src/bhyve/bhyve_conf.c b/src/bhyve/bhyve_conf.c index f3e2ebf7c7..19ea5c5a03 100644 --- a/src/bhyve/bhyve_conf.c +++ b/src/bhyve/bhyve_conf.c @@ -32,29 +32,27 @@ =20 VIR_LOG_INIT("bhyve.bhyve_conf"); =20 -static virClassPtr virBhyveDriverConfigClass; -static void virBhyveDriverConfigDispose(void *obj); +G_DEFINE_TYPE(virBhyveDriverConfig, vir_bhyve_driver_config, G_TYPE_OBJECT= ); +static void virBhyveDriverConfigFinalize(GObject *obj); =20 -static int virBhyveConfigOnceInit(void) +static void +vir_bhyve_driver_config_init(virBhyveDriverConfig *cfg G_GNUC_UNUSED) { - if (!VIR_CLASS_NEW(virBhyveDriverConfig, virClassForObject())) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(virBhyveConfig); +static void +vir_bhyve_driver_config_class_init(virBhyveDriverConfigClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virBhyveDriverConfigFinalize; +} =20 virBhyveDriverConfigPtr virBhyveDriverConfigNew(void) { - virBhyveDriverConfigPtr cfg; - - if (virBhyveConfigInitialize() < 0) - return NULL; - - if (!(cfg =3D virObjectNew(virBhyveDriverConfigClass))) - return NULL; + virBhyveDriverConfigPtr cfg =3D + VIR_BHYVE_DRIVER_CONFIG(g_object_new(VIR_TYPE_BHYVE_DRIVER_CONFIG,= NULL)); =20 cfg->firmwareDir =3D g_strdup(DATADIR "/uefi-firmware"); =20 @@ -93,11 +91,13 @@ virBhyveDriverGetConfig(bhyveConnPtr driver) } =20 static void -virBhyveDriverConfigDispose(void *obj) +virBhyveDriverConfigFinalize(GObject *obj) { - virBhyveDriverConfigPtr cfg =3D obj; + virBhyveDriverConfigPtr cfg =3D VIR_BHYVE_DRIVER_CONFIG(obj); =20 VIR_FREE(cfg->firmwareDir); + + G_OBJECT_CLASS(vir_bhyve_driver_config_parent_class)->finalize(obj); } =20 void diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index 2224395128..275c095b20 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -1188,7 +1188,8 @@ bhyveStateCleanup(void) virSysinfoDefFree(bhyve_driver->hostsysinfo); virObjectUnref(bhyve_driver->closeCallbacks); virObjectUnref(bhyve_driver->domainEventState); - virObjectUnref(bhyve_driver->config); + if (bhyve_driver->config) + g_object_unref(bhyve_driver->config); virPortAllocatorRangeFree(bhyve_driver->remotePorts); =20 if (bhyve_driver->lockFD !=3D -1) diff --git a/src/bhyve/bhyve_utils.h b/src/bhyve/bhyve_utils.h index f3e80b6121..675b859098 100644 --- a/src/bhyve/bhyve_utils.h +++ b/src/bhyve/bhyve_utils.h @@ -29,16 +29,23 @@ #include "hypervisor/virclosecallbacks.h" #include "virportallocator.h" =20 +#include + #define BHYVE_AUTOSTART_DIR SYSCONFDIR "/libvirt/bhyve/autostart" #define BHYVE_CONFIG_DIR SYSCONFDIR "/libvirt/bhyve" #define BHYVE_STATE_DIR RUNSTATEDIR "/libvirt/bhyve" #define BHYVE_LOG_DIR LOCALSTATEDIR "/log/libvirt/bhyve" =20 -typedef struct _virBhyveDriverConfig virBhyveDriverConfig; +#define VIR_TYPE_BHYVE_DRIVER_CONFIG vir_bhyve_driver_config_get_type() +G_DECLARE_FINAL_TYPE(virBhyveDriverConfig, + vir_bhyve_driver_config, + VIR, + BHYVE_DRIVER_CONFIG, + GObject); typedef struct _virBhyveDriverConfig *virBhyveDriverConfigPtr; =20 struct _virBhyveDriverConfig { - virObject parent; + GObject parent; =20 char *firmwareDir; }; --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927016; cv=none; d=zohomail.com; s=zohoarc; b=cLPKwM06blwigBY+v7xS60y6UvqLpyGmxL4zp7QydiNlLsHvFa5nsgdWB1SDEVV+oKKD9mmXLqI6YFpQAcJlJISga3CzZ8ac0APlf/AkyzcvqWYxzKpesgjio5lfsFj1cguetoPPjugFijAauhMfGADYtQQWhdWnMTfoDI/yIu4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927016; 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=0zdABz+NhDwmEKH5oxaO559VQG4e1Ywy8nLAxWR8KH0=; b=Y1GnMZo9gCBRKIuOvbgwwoan8FZEOmDQi5DjutwLMbNv1iM6SsvneGzNcLu5N4+IGx33IjF4nrzxs9tLv0vjif4DNsZYo1O516qIP3BPIdDFKql0uhUBHuDsOiB0m/7t3SPAkc7Pis6jK7GTkGXPcy9uc/q1Gxf9OYWD7Vrj4mE= 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 1585927016517467.6293997814289; Fri, 3 Apr 2020 08:16:56 -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-272-b5KJJOa-OYybIDlCHuynoQ-1; Fri, 03 Apr 2020 11:16:52 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D9FE818C35A9; Fri, 3 Apr 2020 15:16:45 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A90AD5C57B; Fri, 3 Apr 2020 15:16:45 +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 665FE4E443; Fri, 3 Apr 2020 15:16:45 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FGXeA028121 for ; Fri, 3 Apr 2020 11:16:33 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8789E2166B31; Fri, 3 Apr 2020 15:16:33 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 837D72166B2C for ; Fri, 3 Apr 2020 15:16:33 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (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 623D7185A793 for ; Fri, 3 Apr 2020 15:16:33 +0000 (UTC) Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-277-3VO-SLU9O46ZobXwdhdhpQ-1; Fri, 03 Apr 2020 11:16:30 -0400 Received: by mail-wr1-f47.google.com with SMTP id h15so8945900wrx.9 for ; Fri, 03 Apr 2020 08:16:30 -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.16.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927015; 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=0zdABz+NhDwmEKH5oxaO559VQG4e1Ywy8nLAxWR8KH0=; b=YQ7UpfXpizyvF3FmG3WdmSS2QWbUp5CTxi9H8GWBPhxcj23owUjuSsZgN//u842l3u7RPh Al3sYa9TWxz1JOy/WJ0m5EzQG2RI15A0FAOzcHBTw9nJOpvLrGgAf4JF0scy8F+EQ/t5gH EEjTn84K1oa+RNNVFEB3AFq41gzaI/U= X-MC-Unique: b5KJJOa-OYybIDlCHuynoQ-1 X-MC-Unique: 3VO-SLU9O46ZobXwdhdhpQ-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=6p7/RNMvf6qaqR5An9r+QEBX5QkvYIo34XoQI1eeG/I=; b=P4qMU5abByhkj3WppzbdiY1818ZxgJt/+HBl3U1XsQ/258FPevA1G7dMq6TKSbw529 PTcEobg7pQ4jpAr+baqSe2lVP51r210VGEksYvm09AZNN4Zm8u4DlP23aKZ9FbygpM8s u3SweHDohAMn5QmFHc6klBSE6tIA/i/TmTEPR2QspKBhK17jLTAUgfODBZnEfhOGRUWF 0WsuGaoLCEwMytc+ZOxjJ48lzmCu/NVpN71M0OY6x2JYtSJERVeKEdWW+CQC71VlgndQ oO7DdVADKIZYbj9n3zABke+VVdfXjbd07j0hgkQc/vfRB4Cnhh9SEtE7n+QnOvxBU6ll AZTg== X-Gm-Message-State: AGi0PuY5um9cHH8c4vLJ6wvJ6MiKgIx8/H9HJRf4US7NsTZdYR4IZYzU GJNpfWxFIx2b+qVDP06XOZEz/QbrV+E= X-Google-Smtp-Source: APiQypLsoFjgH/hdt6yuizSQBz8KhkRQ1bDsOqSOQPkXTj8w/3lCp6TdOQWdFA+IFbu2sCxhwzqnBA== X-Received: by 2002:adf:a48d:: with SMTP id g13mr10206288wrb.38.1585926989360; Fri, 03 Apr 2020 08:16:29 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 09/36] rpc: convert virNetServerService to GObject Date: Fri, 3 Apr 2020 17:15:37 +0200 Message-Id: <20200403151604.106616-10-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.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGXeA028121 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.16 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/lxc/lxc_controller.c | 6 +-- src/rpc/virnetserver.c | 4 +- src/rpc/virnetserverprogram.h | 7 ++- src/rpc/virnetserverservice.c | 87 +++++++++++++++-------------------- tests/virnetdaemontest.c | 4 +- 5 files changed, 48 insertions(+), 60 deletions(-) diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c index 4c038c6228..ea03f5a452 100644 --- a/src/lxc/lxc_controller.c +++ b/src/lxc/lxc_controller.c @@ -992,8 +992,7 @@ static int virLXCControllerSetupServer(virLXCController= Ptr ctrl) =20 if (virNetServerAddService(srv, svc) < 0) goto error; - virObjectUnref(svc); - svc =3D NULL; + g_clear_object(&svc); =20 ctrl->prog =3D virNetServerProgramNew(VIR_LXC_MONITOR_PROGRAM, VIR_LXC_MONITOR_PROGRAM_VERSION, @@ -1015,7 +1014,8 @@ static int virLXCControllerSetupServer(virLXCControll= erPtr ctrl) virObjectUnref(srv); virObjectUnref(ctrl->daemon); ctrl->daemon =3D NULL; - virObjectUnref(svc); + if (svc) + g_object_unref(svc); return -1; } =20 diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c index 5e9124c7ee..f5a59b11af 100644 --- a/src/rpc/virnetserver.c +++ b/src/rpc/virnetserver.c @@ -660,7 +660,7 @@ int virNetServerAddService(virNetServerPtr srv, if (VIR_EXPAND_N(srv->services, srv->nservices, 1) < 0) goto error; =20 - srv->services[srv->nservices-1] =3D virObjectRef(svc); + srv->services[srv->nservices-1] =3D g_object_ref(svc); =20 virNetServerServiceSetDispatcher(svc, virNetServerDispatchNewClient, @@ -916,7 +916,7 @@ void virNetServerDispose(void *obj) virThreadPoolFree(srv->workers); =20 for (i =3D 0; i < srv->nservices; i++) - virObjectUnref(srv->services[i]); + g_object_unref(srv->services[i]); VIR_FREE(srv->services); =20 for (i =3D 0; i < srv->nprograms; i++) diff --git a/src/rpc/virnetserverprogram.h b/src/rpc/virnetserverprogram.h index bcc10809d4..72dff3b9cb 100644 --- a/src/rpc/virnetserverprogram.h +++ b/src/rpc/virnetserverprogram.h @@ -29,7 +29,12 @@ typedef struct _virNetDaemon virNetDaemon; typedef virNetDaemon *virNetDaemonPtr; =20 -typedef struct _virNetServerService virNetServerService; +#define VIR_TYPE_NET_SERVER_SERVICE vir_net_server_service_get_type() +G_DECLARE_FINAL_TYPE(virNetServerService, + vir_net_server_service, + VIR, + NET_SERVER_SERVICE, + GObject); typedef virNetServerService *virNetServerServicePtr; =20 #define VIR_TYPE_NET_SERVER_PROGRAM vir_net_server_program_get_type() diff --git a/src/rpc/virnetserverservice.c b/src/rpc/virnetserverservice.c index 9d5df456a8..781e414461 100644 --- a/src/rpc/virnetserverservice.c +++ b/src/rpc/virnetserverservice.c @@ -35,7 +35,7 @@ VIR_LOG_INIT("rpc.netserverservice"); =20 struct _virNetServerService { - virObject parent; + GObject parent; =20 size_t nsocks; virNetSocketPtr *socks; @@ -51,19 +51,19 @@ struct _virNetServerService { }; =20 =20 -static virClassPtr virNetServerServiceClass; -static void virNetServerServiceDispose(void *obj); +G_DEFINE_TYPE(virNetServerService, vir_net_server_service, G_TYPE_OBJECT); +static void virNetServerServiceFinalize(GObject *obj); =20 -static int virNetServerServiceOnceInit(void) +static void vir_net_server_service_init(virNetServerService *svc G_GNUC_UN= USED) { - if (!VIR_CLASS_NEW(virNetServerService, virClassForObject())) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(virNetServerService); +static void vir_net_server_service_class_init(virNetServerServiceClass *kl= ass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 + obj->finalize =3D virNetServerServiceFinalize; +} =20 static void virNetServerServiceAccept(virNetSocketPtr sock, int events G_GNUC_UNUSED, @@ -97,17 +97,13 @@ virNetServerServiceNewSocket(virNetSocketPtr *socks, size_t max_queued_clients, size_t nrequests_client_max) { - virNetServerServicePtr svc; + g_autoptr(virNetServerService) svc =3D NULL; size_t i; =20 - if (virNetServerServiceInitialize() < 0) - return NULL; - - if (!(svc =3D virObjectNew(virNetServerServiceClass))) - return NULL; + svc =3D VIR_NET_SERVER_SERVICE(g_object_new(VIR_TYPE_NET_SERVER_SERVIC= E, NULL)); =20 if (VIR_ALLOC_N(svc->socks, nsocks) < 0) - goto error; + return NULL; svc->nsocks =3D nsocks; for (i =3D 0; i < svc->nsocks; i++) { svc->socks[i] =3D socks[i]; @@ -120,27 +116,22 @@ virNetServerServiceNewSocket(virNetSocketPtr *socks, =20 for (i =3D 0; i < svc->nsocks; i++) { if (virNetSocketListen(svc->socks[i], max_queued_clients) < 0) - goto error; + return NULL; =20 /* IO callback is initially disabled, until we're ready * to deal with incoming clients */ - virObjectRef(svc); + g_object_ref(svc); if (virNetSocketAddIOCallback(svc->socks[i], 0, virNetServerServiceAccept, svc, - virObjectFreeCallback) < 0) { - virObjectUnref(svc); - goto error; + g_object_unref) < 0) { + g_object_unref(svc); + return NULL; } } =20 - - return svc; - - error: - virObjectUnref(svc); - return NULL; + return g_steal_pointer(&svc); } =20 =20 @@ -258,51 +249,47 @@ virNetServerServicePtr virNetServerServiceNewFDs(int = *fds, =20 virNetServerServicePtr virNetServerServiceNewPostExecRestart(virJSONValueP= tr object) { - virNetServerServicePtr svc; + g_autoptr(virNetServerService) svc =3D NULL; virJSONValuePtr socks; size_t i; size_t n; unsigned int max; =20 - if (virNetServerServiceInitialize() < 0) - return NULL; - - if (!(svc =3D virObjectNew(virNetServerServiceClass))) - return NULL; + svc =3D VIR_NET_SERVER_SERVICE(g_object_new(VIR_TYPE_NET_SERVER_SERVIC= E, NULL)); =20 if (virJSONValueObjectGetNumberInt(object, "auth", &svc->auth) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Missing auth field in JSON state document")); - goto error; + return NULL; } if (virJSONValueObjectGetBoolean(object, "readonly", &svc->readonly) <= 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Missing readonly field in JSON state document")); - goto error; + return NULL; } if (virJSONValueObjectGetNumberUint(object, "nrequests_client_max", &max) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Missing nrequests_client_max field in JSON state= document")); - goto error; + return NULL; } svc->nrequests_client_max =3D max; =20 if (!(socks =3D virJSONValueObjectGet(object, "socks"))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Missing socks field in JSON state document")); - goto error; + return NULL; } =20 if (!virJSONValueIsArray(socks)) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Malformed socks array")); - goto error; + return NULL; } =20 n =3D virJSONValueArraySize(socks); if (VIR_ALLOC_N(svc->socks, n) < 0) - goto error; + return NULL; svc->nsocks =3D n; =20 for (i =3D 0; i < svc->nsocks; i++) { @@ -311,29 +298,25 @@ virNetServerServicePtr virNetServerServiceNewPostExec= Restart(virJSONValuePtr obj =20 if (!(sock =3D virNetSocketNewPostExecRestart(child))) { virObjectUnref(sock); - goto error; + return NULL; } =20 svc->socks[i] =3D sock; =20 /* IO callback is initially disabled, until we're ready * to deal with incoming clients */ - virObjectRef(svc); + g_object_ref(svc); if (virNetSocketAddIOCallback(sock, 0, virNetServerServiceAccept, svc, - virObjectFreeCallback) < 0) { - virObjectUnref(svc); - goto error; + g_object_unref) < 0) { + g_object_unref(svc); + return NULL; } } =20 - return svc; - - error: - virObjectUnref(svc); - return NULL; + return g_steal_pointer(&svc); } =20 =20 @@ -415,9 +398,9 @@ void virNetServerServiceSetDispatcher(virNetServerServi= cePtr svc, } =20 =20 -void virNetServerServiceDispose(void *obj) +void virNetServerServiceFinalize(GObject *obj) { - virNetServerServicePtr svc =3D obj; + virNetServerServicePtr svc =3D VIR_NET_SERVER_SERVICE(obj); size_t i; =20 for (i =3D 0; i < svc->nsocks; i++) @@ -425,6 +408,8 @@ void virNetServerServiceDispose(void *obj) VIR_FREE(svc->socks); =20 virObjectUnref(svc->tls); + + G_OBJECT_CLASS(vir_net_server_service_parent_class)->finalize(obj); } =20 void virNetServerServiceToggle(virNetServerServicePtr svc, diff --git a/tests/virnetdaemontest.c b/tests/virnetdaemontest.c index 09d268627c..3107fb6747 100644 --- a/tests/virnetdaemontest.c +++ b/tests/virnetdaemontest.c @@ -85,7 +85,7 @@ static virNetServerPtr testCreateServer(const char *server_name, const char *host, int family) { virNetServerPtr srv =3D NULL; - virNetServerServicePtr svc1 =3D NULL, svc2 =3D NULL; + g_autoptr(virNetServerService) svc1 =3D NULL, svc2 =3D NULL; virNetServerClientPtr cln1 =3D NULL, cln2 =3D NULL; virNetSocketPtr sk1 =3D NULL, sk2 =3D NULL; int fdclient[2]; @@ -170,8 +170,6 @@ testCreateServer(const char *server_name, const char *h= ost, int family) virDispatchError(NULL); virObjectUnref(cln1); virObjectUnref(cln2); - virObjectUnref(svc1); - virObjectUnref(svc2); virObjectUnref(sk1); virObjectUnref(sk2); return srv; --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927023; cv=none; d=zohomail.com; s=zohoarc; b=AN07foyqnrgeL+VFUUuTdNQ4PJbolxd7WKe21P2nROtYmCWFJz2cN0hxdjbJuVNclMD6wGqOreK9j6FgDvldbmZb61yp4VUZxpCUahAE3RWh4MK8G3mYWypzqb64R13dfZSWHwnXvJp/43spj44EZaBjJUOj+qW/vshnt13XT9Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927023; 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=/eaIEcN2rGI99D0xzaYhstvTLVRK8bkUnAvejZYBKbk=; b=Vm61YV1/xjfwKqYux2w9qcCdOkgH3U3jKHmsdYzwby1fgiJViNSFs75Hxa4BUs9ZFU+I5TBmWtoaqJcq2nT8kW7MzylhGSG8vTiQThNbBYmHAe5blKr0d0wFz8fsncFy3iDuxHIKn6BTYh8Iw/FxaKf+PXyp7DoYrACLPvJdznc= 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 1585927023135269.5329872970914; Fri, 3 Apr 2020 08:17:03 -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-463-x3EJs0GFNKe-QR1m2mG4Vg-1; Fri, 03 Apr 2020 11:16:59 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4ECB01084424; Fri, 3 Apr 2020 15:16:50 +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 1E3B989F0A; Fri, 3 Apr 2020 15:16:50 +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 BA54F1803C32; Fri, 3 Apr 2020 15:16:49 +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 033FGZDq028146 for ; Fri, 3 Apr 2020 11:16:35 -0400 Received: by smtp.corp.redhat.com (Postfix) id 093E913CCA1; Fri, 3 Apr 2020 15:16:35 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 053DA107504 for ; Fri, 3 Apr 2020 15:16:35 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (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 DEB4F800298 for ; Fri, 3 Apr 2020 15:16:34 +0000 (UTC) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-47-zO3eWAWpOnCr9q4WQZYFIA-1; Fri, 03 Apr 2020 11:16:32 -0400 Received: by mail-wm1-f42.google.com with SMTP id t128so7545438wma.0 for ; Fri, 03 Apr 2020 08:16:32 -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.16.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927021; 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=/eaIEcN2rGI99D0xzaYhstvTLVRK8bkUnAvejZYBKbk=; b=OyDjzujYumUyGnWepawn82dqwAoWeA6tlnrV/Ps/mYai7SBssp3q3s7lJdqeUPge0RYjw0 oV3lVkN2/4TMLsCtY0sFtpx7qKr6YoZj1NL/zk88YNn8XA07NH+z37KeTlahzeRY6D7eJx jL14+Fm7gpgORyJz2YFMe8WXuhih3Yg= X-MC-Unique: x3EJs0GFNKe-QR1m2mG4Vg-1 X-MC-Unique: zO3eWAWpOnCr9q4WQZYFIA-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=XmVGOHVVvVAEUha8F+1knUVTEWJH+jsxzdfnct95mDU=; b=aFBkr5JTsYe26bKfBIHlD1EUBsv4/QyoyLiaxD0Fal9aohqtWnAJMvW42XIdouT5sQ 6sbDRH+1rmTrjtzbIaaafwQaCTKWTKyXdx6FAxgU22cIdWVFi3WO62j8IhifwD9RZ/Q0 IFYxJhwHYhSwflAtvTap7JKaY7GXIS2nSj52/LcJuZ04QHDjbCs+IOeTM9EOn4HHpD/K hDN7JQxwe7Q7+wKvFD4ET4UJDzYk71R0DyYlZ/8qE+Y+dThCqkSM+2bB61S0x3jPrIQC bVI0sG/aIB0R77M2BkOHKz2Zm3j3RKqs+2mgxF4eTklPtdzNNJyNSFTtkESpWXcOr8ER zvsA== X-Gm-Message-State: AGi0PuZ6rhHRAnboo6xMW9pevXt7YFGRfQnT5QBVSzJuE7yfMbezAhXf uKgTbCPFvpno4865EskVyrcSzvAEzVU= X-Google-Smtp-Source: APiQypKIrYkhWJjljxIO1KPTxn5VJGdxOlhH/PS0pUw95XNHaITo54RKTAW91jfNT1QGkMIRv6t3Jw== X-Received: by 2002:a1c:1d93:: with SMTP id d141mr9594601wmd.134.1585926990937; Fri, 03 Apr 2020 08:16:30 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 10/36] conf: convert virDomainCapsCPUModels to GObject Date: Fri, 3 Apr 2020 17:15:38 +0200 Message-Id: <20200403151604.106616-11-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 033FGZDq028146 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.11 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/conf/domain_capabilities.c | 48 ++++++++++++++++++---------------- src/conf/domain_capabilities.h | 10 ++++--- tests/cputest.c | 35 ++++++++----------------- 3 files changed, 43 insertions(+), 50 deletions(-) diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index 921d795630..bc0a505cb9 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -45,19 +45,27 @@ VIR_ENUM_IMPL(virDomainCapsFeature, ); =20 static virClassPtr virDomainCapsClass; -static virClassPtr virDomainCapsCPUModelsClass; +G_DEFINE_TYPE(virDomainCapsCPUModels, vir_domain_caps_cpu_models, G_TYPE_O= BJECT); =20 static void virDomainCapsDispose(void *obj); -static void virDomainCapsCPUModelsDispose(void *obj); +static void virDomainCapsCPUModelsFinalize(GObject *obj); + +static void vir_domain_caps_cpu_models_init(virDomainCapsCPUModels *mod G_= GNUC_UNUSED) +{ +} + +static void vir_domain_caps_cpu_models_class_init(virDomainCapsCPUModelsCl= ass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virDomainCapsCPUModelsFinalize; +} =20 static int virDomainCapsOnceInit(void) { if (!VIR_CLASS_NEW(virDomainCaps, virClassForObjectLockable())) return -1; =20 - if (!VIR_CLASS_NEW(virDomainCapsCPUModels, virClassForObject())) - return -1; - return 0; } =20 @@ -107,9 +115,9 @@ virDomainCapsDispose(void *obj) =20 =20 static void -virDomainCapsCPUModelsDispose(void *obj) +virDomainCapsCPUModelsFinalize(GObject *obj) { - virDomainCapsCPUModelsPtr cpuModels =3D obj; + virDomainCapsCPUModelsPtr cpuModels =3D VIR_DOMAIN_CAPS_CPU_MODELS(obj= ); size_t i; =20 for (i =3D 0; i < cpuModels->nmodels; i++) { @@ -118,6 +126,8 @@ virDomainCapsCPUModelsDispose(void *obj) } =20 VIR_FREE(cpuModels->models); + + G_OBJECT_CLASS(vir_domain_caps_cpu_models_parent_class)->finalize(obj); } =20 =20 @@ -147,30 +157,26 @@ virDomainCapsNew(const char *path, virDomainCapsCPUModelsPtr virDomainCapsCPUModelsNew(size_t nmodels) { - virDomainCapsCPUModelsPtr cpuModels =3D NULL; + g_autoptr(virDomainCapsCPUModels) cpuModels =3D NULL; =20 if (virDomainCapsInitialize() < 0) return NULL; =20 - if (!(cpuModels =3D virObjectNew(virDomainCapsCPUModelsClass))) - return NULL; + cpuModels =3D VIR_DOMAIN_CAPS_CPU_MODELS( + g_object_new(VIR_TYPE_DOMAIN_CAPS_CPU_MODELS, NULL)); =20 if (VIR_ALLOC_N(cpuModels->models, nmodels) < 0) - goto error; + return NULL; cpuModels->nmodels_max =3D nmodels; =20 - return cpuModels; - - error: - virObjectUnref(cpuModels); - return NULL; + return g_steal_pointer(&cpuModels); } =20 =20 virDomainCapsCPUModelsPtr virDomainCapsCPUModelsCopy(virDomainCapsCPUModelsPtr old) { - virDomainCapsCPUModelsPtr cpuModels; + g_autoptr(virDomainCapsCPUModels) cpuModels =3D NULL; size_t i; =20 if (!(cpuModels =3D virDomainCapsCPUModelsNew(old->nmodels))) @@ -181,14 +187,10 @@ virDomainCapsCPUModelsCopy(virDomainCapsCPUModelsPtr = old) old->models[i].name, old->models[i].usable, old->models[i].blockers) < 0) - goto error; + return NULL; } =20 - return cpuModels; - - error: - virObjectUnref(cpuModels); - return NULL; + return g_steal_pointer(&cpuModels); } =20 =20 diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h index 9f4a23d015..88673ffe35 100644 --- a/src/conf/domain_capabilities.h +++ b/src/conf/domain_capabilities.h @@ -129,17 +129,21 @@ struct _virDomainCapsCPUModel { char **blockers; /* NULL-terminated list of usability blockers */ }; =20 -typedef struct _virDomainCapsCPUModels virDomainCapsCPUModels; +#define VIR_TYPE_DOMAIN_CAPS_CPU_MODELS vir_domain_caps_cpu_models_get_typ= e() +G_DECLARE_FINAL_TYPE(virDomainCapsCPUModels, + vir_domain_caps_cpu_models, + VIR, + DOMAIN_CAPS_CPU_MODELS, + GObject); typedef virDomainCapsCPUModels *virDomainCapsCPUModelsPtr; struct _virDomainCapsCPUModels { - virObject parent; + GObject parent; =20 size_t nmodels_max; size_t nmodels; virDomainCapsCPUModelPtr models; }; =20 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainCapsCPUModels, virObjectUnref); =20 typedef struct _virDomainCapsCPU virDomainCapsCPU; typedef virDomainCapsCPU *virDomainCapsCPUPtr; diff --git a/tests/cputest.c b/tests/cputest.c index 4590bfacee..6ae35227b9 100644 --- a/tests/cputest.c +++ b/tests/cputest.c @@ -572,7 +572,7 @@ cpuTestCPUID(bool guest, const void *arg) char *host =3D NULL; virCPUDefPtr cpu =3D NULL; char *result =3D NULL; - virDomainCapsCPUModelsPtr models =3D NULL; + g_autoptr(virDomainCapsCPUModels) models =3D NULL; =20 hostFile =3D g_strdup_printf("%s/cputestdata/%s-cpuid-%s.xml", abs_src= dir, virArchToString(data->arch), data->host); @@ -614,7 +614,6 @@ cpuTestCPUID(bool guest, const void *arg) virCPUDataFree(hostData); virCPUDefFree(cpu); VIR_FREE(result); - virObjectUnref(models); return ret; } =20 @@ -786,8 +785,8 @@ cpuTestUpdateLive(const void *arg) virCPUDataPtr disabledData =3D NULL; char *expectedFile =3D NULL; virCPUDefPtr expected =3D NULL; - virDomainCapsCPUModelsPtr hvModels =3D NULL; - virDomainCapsCPUModelsPtr models =3D NULL; + g_autoptr(virDomainCapsCPUModels) hvModels =3D NULL; + g_autoptr(virDomainCapsCPUModels) models =3D NULL; int ret =3D -1; =20 cpuFile =3D g_strdup_printf("cpuid-%s-guest", data->host); @@ -863,8 +862,6 @@ cpuTestUpdateLive(const void *arg) virCPUDataFree(disabledData); VIR_FREE(expectedFile); virCPUDefFree(expected); - virObjectUnref(hvModels); - virObjectUnref(models); return ret; } =20 @@ -936,7 +933,7 @@ static const char *ppc_models_list[] =3D { "POWER6", "P= OWER7", "POWER8", NULL }; static virDomainCapsCPUModelsPtr cpuTestInitModels(const char **list) { - virDomainCapsCPUModelsPtr cpus; + g_autoptr(virDomainCapsCPUModels) cpus =3D NULL; const char **model; =20 if (!(cpus =3D virDomainCapsCPUModelsNew(0))) @@ -945,25 +942,21 @@ cpuTestInitModels(const char **list) for (model =3D list; *model; model++) { if (virDomainCapsCPUModelsAdd(cpus, *model, VIR_DOMCAPS_CPU_USABLE_UNKNOWN, NULL= ) < 0) - goto error; + return NULL; } =20 - return cpus; - - error: - virObjectUnref(cpus); - return NULL; + return g_steal_pointer(&cpus); } =20 =20 static int mymain(void) { - virDomainCapsCPUModelsPtr model486 =3D NULL; - virDomainCapsCPUModelsPtr nomodel =3D NULL; - virDomainCapsCPUModelsPtr models =3D NULL; - virDomainCapsCPUModelsPtr haswell =3D NULL; - virDomainCapsCPUModelsPtr ppc_models =3D NULL; + g_autoptr(virDomainCapsCPUModels) model486 =3D NULL; + g_autoptr(virDomainCapsCPUModels) nomodel =3D NULL; + g_autoptr(virDomainCapsCPUModels) models =3D NULL; + g_autoptr(virDomainCapsCPUModels) haswell =3D NULL; + g_autoptr(virDomainCapsCPUModels) ppc_models =3D NULL; int ret =3D 0; =20 #if WITH_QEMU @@ -1272,12 +1265,6 @@ mymain(void) qemuTestDriverFree(&driver); #endif =20 - virObjectUnref(model486); - virObjectUnref(nomodel); - virObjectUnref(models); - virObjectUnref(haswell); - virObjectUnref(ppc_models); - return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; } =20 --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927026; cv=none; d=zohomail.com; s=zohoarc; b=J+wslbROqle2ETWM+PT20PODB6ruA3ndb7nujJdcnO32/HwBBwBQL8bqpjjSjyUUwuJG989M4eoW0pwHvQ7dLVWFqoVTVnUH1tmWPR/PXleqoDoUmNOjvJbUSvfeZv5Ce54G2vDVukelRCKffRxWumapW02naRm+AoDyIDHGdIQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927026; 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=tNTbE4iHXdAuerIzuNEaO2Ye0PNmba/UqzZiqBOBOiw=; b=J+raLo4T45huU4Y6keWZUYq1pnwZY8wEztm17ABSklBAaaxlT/MU89JfNXpxGnWPCliIE4Y8rKia55iRHsdQDTMVfVErt99EBpEE0qxiZvQV4IqC96T7R6cfLWfqrHWqwRsu+BqnvG9iTIm76DU7VfmpGd0xdlRTpwtRL2xLVk8= 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 1585927026137256.87667583247537; Fri, 3 Apr 2020 08:17:06 -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-393-L4r0jjInMxKfjMtvjUsq3w-1; Fri, 03 Apr 2020 11:17:02 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2A0418010F9; Fri, 3 Apr 2020 15:16:54 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EA1405C1D6; Fri, 3 Apr 2020 15:16:53 +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 9FB1E4E46A; Fri, 3 Apr 2020 15:16:53 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FGdj7028167 for ; Fri, 3 Apr 2020 11:16:39 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9E4B1123CD57; Fri, 3 Apr 2020 15:16:39 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9A4BD123CD4F for ; Fri, 3 Apr 2020 15:16:36 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (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 227728007B3 for ; Fri, 3 Apr 2020 15:16:36 +0000 (UTC) Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-113-wv-6yBmxNk2R3aaj6dDwJg-1; Fri, 03 Apr 2020 11:16:34 -0400 Received: by mail-wm1-f66.google.com with SMTP id t128so7545508wma.0 for ; Fri, 03 Apr 2020 08:16:33 -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.16.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927024; 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=tNTbE4iHXdAuerIzuNEaO2Ye0PNmba/UqzZiqBOBOiw=; b=imCGO2UufQQREZywZKgZLkfIPCFrrjF8QuJvpMUVoFPPv4slD8MpWPp/zf7ppGjeR7FOXe 8e+5gQc4+ZNYWAr0bmammuhftxTWE7kjwyEwHiWuD2ceB/jKLKfqF5Q572tgPJAWSygFh3 DlEjJ6HUxPyY3gJn5jnyZqWKcW8U8U0= X-MC-Unique: L4r0jjInMxKfjMtvjUsq3w-1 X-MC-Unique: wv-6yBmxNk2R3aaj6dDwJg-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=T5VZXJtc/CvM/VZI1LH6+M03QUAg32tFgFJtsIuHqaA=; b=b86DHikUIytEVIfsSljuusiaOryWSnIr8udcWm92LAUDxpwsY9PDYUwYOa7x58kNsZ BN3HAtEfpbw9DnO7kTbgs2cl+XtpRFf4PjPJ+RVTtk7uktTnVAc7kxrLow37Yfqarvei 4CNDcIunlfepWCpz2fs68Jkf10eFW6awhc76B8OwWQ5HlVDc4xa4U7+kVIng660egvmO f/AmB/0Xr+RlLd2FqYu0ZOu9PTOqN2D9GDP/I7u/mjPOplYS1vasN7K2AgNjc8ya79yP d0dHVSdjgcb2FmA+EYcSFM0i3yQf+wAWkvQN0Bkvxtia3Js50B4ToxIT9b0m5ywnwswx 0vOw== X-Gm-Message-State: AGi0PuZL4MNwglW32I7nIbRlwgz8H/FHpkCljXEUdT2Kv1Fpn+ZQDYcM MIJfoIps63RPClVL/7RaqTPl3Rmdhjw= X-Google-Smtp-Source: APiQypIjYSi5Yq8AU/IthNqViE81i9MNP0isJoSiJmsdUrkVJKD9xtsCCA/6kUp39tnD9jNl1eTvjQ== X-Received: by 2002:a1c:c257:: with SMTP id s84mr9641976wmf.9.1585926992217; Fri, 03 Apr 2020 08:16:32 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 11/36] util: convert dnsmasqCaps to GObject Date: Fri, 3 Apr 2020 17:15:39 +0200 Message-Id: <20200403151604.106616-12-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.78 on 10.11.54.3 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGdj7028167 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.16 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/network/bridge_driver.c | 21 ++++++-------- src/util/virdnsmasq.c | 56 +++++++++++++++++-------------------- src/util/virdnsmasq.h | 6 ++-- tests/networkxml2conftest.c | 10 ++----- 4 files changed, 41 insertions(+), 52 deletions(-) diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index f06099297a..6148bf6a7e 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -117,7 +117,7 @@ networkGetDnsmasqCaps(virNetworkDriverStatePtr driver) { dnsmasqCapsPtr ret; networkDriverLock(driver); - ret =3D virObjectRef(driver->dnsmasqCaps); + ret =3D g_object_ref(driver->dnsmasqCaps); networkDriverUnlock(driver); return ret; } @@ -132,7 +132,8 @@ networkDnsmasqCapsRefresh(virNetworkDriverStatePtr driv= er) return -1; =20 networkDriverLock(driver); - virObjectUnref(driver->dnsmasqCaps); + if (driver->dnsmasqCaps) + g_object_unref(driver->dnsmasqCaps); driver->dnsmasqCaps =3D caps; networkDriverUnlock(driver); return 0; @@ -543,7 +544,7 @@ networkUpdateState(virNetworkObjPtr obj, { virNetworkDefPtr def; virNetworkDriverStatePtr driver =3D opaque; - dnsmasqCapsPtr dnsmasq_caps =3D networkGetDnsmasqCaps(driver); + g_autoptr(dnsmasqCaps) dnsmasq_caps =3D networkGetDnsmasqCaps(driver); virMacMapPtr macmap; char *macMapFile =3D NULL; int ret =3D -1; @@ -629,7 +630,6 @@ networkUpdateState(virNetworkObjPtr obj, ret =3D 0; cleanup: virObjectUnlock(obj); - virObjectUnref(dnsmasq_caps); VIR_FREE(macMapFile); return ret; } @@ -905,7 +905,8 @@ networkStateCleanup(void) VIR_FREE(network_driver->dnsmasqStateDir); VIR_FREE(network_driver->radvdStateDir); =20 - virObjectUnref(network_driver->dnsmasqCaps); + if (network_driver->dnsmasqCaps) + g_object_unref(network_driver->dnsmasqCaps); =20 virMutexDestroy(&network_driver->lock); =20 @@ -1544,7 +1545,7 @@ networkBuildDhcpDaemonCommandLine(virNetworkDriverSta= tePtr driver, dnsmasqContext *dctx) { virNetworkDefPtr def =3D virNetworkObjGetDef(obj); - dnsmasqCapsPtr dnsmasq_caps =3D networkGetDnsmasqCaps(driver); + g_autoptr(dnsmasqCaps) dnsmasq_caps =3D networkGetDnsmasqCaps(driver); virCommandPtr cmd =3D NULL; int ret =3D -1; char *configfile =3D NULL; @@ -1587,7 +1588,6 @@ networkBuildDhcpDaemonCommandLine(virNetworkDriverSta= tePtr driver, *cmdout =3D cmd; ret =3D 0; cleanup: - virObjectUnref(dnsmasq_caps); VIR_FREE(configfile); VIR_FREE(configstr); VIR_FREE(leaseshelper_path); @@ -1911,7 +1911,7 @@ networkStartRadvd(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { virNetworkDefPtr def =3D virNetworkObjGetDef(obj); - dnsmasqCapsPtr dnsmasq_caps =3D networkGetDnsmasqCaps(driver); + g_autoptr(dnsmasqCaps) dnsmasq_caps =3D networkGetDnsmasqCaps(driver); pid_t radvdPid; char *pidfile =3D NULL; char *radvdpidbase =3D NULL; @@ -1989,7 +1989,6 @@ networkStartRadvd(virNetworkDriverStatePtr driver, =20 ret =3D 0; cleanup: - virObjectUnref(dnsmasq_caps); virCommandFree(cmd); VIR_FREE(configfile); VIR_FREE(radvdpidbase); @@ -2003,14 +2002,13 @@ networkRefreshRadvd(virNetworkDriverStatePtr driver, virNetworkObjPtr obj) { virNetworkDefPtr def =3D virNetworkObjGetDef(obj); - dnsmasqCapsPtr dnsmasq_caps =3D networkGetDnsmasqCaps(driver); + g_autoptr(dnsmasqCaps) dnsmasq_caps =3D networkGetDnsmasqCaps(driver); g_autofree char *radvdpidbase =3D NULL; g_autofree char *pidfile =3D NULL; pid_t radvdPid; =20 /* Is dnsmasq handling RA? */ if (DNSMASQ_RA_SUPPORT(dnsmasq_caps)) { - virObjectUnref(dnsmasq_caps); if ((radvdpidbase =3D networkRadvdPidfileBasename(def->name)) && (pidfile =3D virPidFileBuildPath(driver->pidDir, radvdpidbase)= )) { /* radvd should not be running but in case it is */ @@ -2019,7 +2017,6 @@ networkRefreshRadvd(virNetworkDriverStatePtr driver, } return 0; } - virObjectUnref(dnsmasq_caps); =20 /* if there's no running radvd, just start it */ radvdPid =3D virNetworkObjGetRadvdPid(obj); diff --git a/src/util/virdnsmasq.c b/src/util/virdnsmasq.c index adc6f96bb6..a8fb22a368 100644 --- a/src/util/virdnsmasq.c +++ b/src/util/virdnsmasq.c @@ -598,7 +598,7 @@ dnsmasqReload(pid_t pid G_GNUC_UNUSED) * */ struct _dnsmasqCaps { - virObject parent; + GObject parent; char *binaryPath; bool noRefresh; time_t mtime; @@ -606,26 +606,31 @@ struct _dnsmasqCaps { unsigned long version; }; =20 -static virClassPtr dnsmasqCapsClass; +G_DEFINE_TYPE(dnsmasqCaps, dnsmasq_caps, G_TYPE_OBJECT); =20 static void -dnsmasqCapsDispose(void *obj) +dnsmasqCapsFinalize(GObject *obj) { - dnsmasqCapsPtr caps =3D obj; + dnsmasqCapsPtr caps =3D DNSMASQ_CAPS(obj); =20 virBitmapFree(caps->flags); VIR_FREE(caps->binaryPath); + + G_OBJECT_CLASS(dnsmasq_caps_parent_class)->finalize(obj); } =20 -static int dnsmasqCapsOnceInit(void) +static void +dnsmasq_caps_init(dnsmasqCaps *caps G_GNUC_UNUSED) { - if (!VIR_CLASS_NEW(dnsmasqCaps, virClassForObject())) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(dnsmasqCaps); +static void +dnsmasq_caps_class_init(dnsmasqCapsClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D dnsmasqCapsFinalize; +} =20 static void dnsmasqCapsSet(dnsmasqCapsPtr caps, @@ -764,65 +769,54 @@ dnsmasqCapsRefreshInternal(dnsmasqCapsPtr caps, bool = force) static dnsmasqCapsPtr dnsmasqCapsNewEmpty(const char *binaryPath) { - dnsmasqCapsPtr caps; - - if (dnsmasqCapsInitialize() < 0) - return NULL; - if (!(caps =3D virObjectNew(dnsmasqCapsClass))) - return NULL; + g_autoptr(dnsmasqCaps) caps =3D + DNSMASQ_CAPS(g_object_new(DNSMASQ_TYPE_CAPS, NULL)); if (!(caps->flags =3D virBitmapNew(DNSMASQ_CAPS_LAST))) - goto error; + return NULL; caps->binaryPath =3D g_strdup(binaryPath ? binaryPath : DNSMASQ); - return caps; - - error: - virObjectUnref(caps); - return NULL; + return g_steal_pointer(&caps); } =20 dnsmasqCapsPtr dnsmasqCapsNewFromBuffer(const char *buf, const char *binaryPath) { - dnsmasqCapsPtr caps =3D dnsmasqCapsNewEmpty(binaryPath); + g_autoptr(dnsmasqCaps) caps =3D dnsmasqCapsNewEmpty(binaryPath); =20 if (!caps) return NULL; =20 if (dnsmasqCapsSetFromBuffer(caps, buf) < 0) { - virObjectUnref(caps); return NULL; } - return caps; + return g_steal_pointer(&caps); } =20 dnsmasqCapsPtr dnsmasqCapsNewFromFile(const char *dataPath, const char *binaryPath) { - dnsmasqCapsPtr caps =3D dnsmasqCapsNewEmpty(binaryPath); + g_autoptr(dnsmasqCaps) caps =3D dnsmasqCapsNewEmpty(binaryPath); =20 if (!caps) return NULL; =20 if (dnsmasqCapsSetFromFile(caps, dataPath) < 0) { - virObjectUnref(caps); return NULL; } - return caps; + return g_steal_pointer(&caps); } =20 dnsmasqCapsPtr dnsmasqCapsNewFromBinary(const char *binaryPath) { - dnsmasqCapsPtr caps =3D dnsmasqCapsNewEmpty(binaryPath); + g_autoptr(dnsmasqCaps) caps =3D dnsmasqCapsNewEmpty(binaryPath); =20 if (!caps) return NULL; =20 if (dnsmasqCapsRefreshInternal(caps, true) < 0) { - virObjectUnref(caps); return NULL; } - return caps; + return g_steal_pointer(&caps); } =20 /** dnsmasqCapsRefresh: diff --git a/src/util/virdnsmasq.h b/src/util/virdnsmasq.h index ff0e56d635..9cbbd5562d 100644 --- a/src/util/virdnsmasq.h +++ b/src/util/virdnsmasq.h @@ -23,7 +23,8 @@ =20 #pragma once =20 -#include "virobject.h" +#include "internal.h" +#include #include "virsocketaddr.h" =20 typedef struct @@ -75,7 +76,8 @@ typedef enum { DNSMASQ_CAPS_LAST, /* this must always be the last item */ } dnsmasqCapsFlags; =20 -typedef struct _dnsmasqCaps dnsmasqCaps; +#define DNSMASQ_TYPE_CAPS dnsmasq_caps_get_type() +G_DECLARE_FINAL_TYPE(dnsmasqCaps, dnsmasq_caps, DNSMASQ, CAPS, GObject); typedef dnsmasqCaps *dnsmasqCapsPtr; =20 =20 diff --git a/tests/networkxml2conftest.c b/tests/networkxml2conftest.c index a8355272b9..ed3a2cf6ae 100644 --- a/tests/networkxml2conftest.c +++ b/tests/networkxml2conftest.c @@ -101,11 +101,11 @@ static int mymain(void) { int ret =3D 0; - dnsmasqCapsPtr restricted + g_autoptr(dnsmasqCaps) restricted =3D dnsmasqCapsNewFromBuffer("Dnsmasq version 2.48", DNSMASQ); - dnsmasqCapsPtr full + g_autoptr(dnsmasqCaps) full =3D dnsmasqCapsNewFromBuffer("Dnsmasq version 2.63\n--bind-dynamic= ", DNSMASQ); - dnsmasqCapsPtr dhcpv6 + g_autoptr(dnsmasqCaps) dhcpv6 =3D dnsmasqCapsNewFromBuffer("Dnsmasq version 2.64\n--bind-dynamic= ", DNSMASQ); =20 #define DO_TEST(xname, xcaps) \ @@ -143,10 +143,6 @@ mymain(void) DO_TEST("ptr-domains-auto", dhcpv6); DO_TEST("dnsmasq-options", dhcpv6); =20 - virObjectUnref(dhcpv6); - virObjectUnref(full); - virObjectUnref(restricted); - return ret =3D=3D 0 ? EXIT_SUCCESS : EXIT_FAILURE; } =20 --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927024; cv=none; d=zohomail.com; s=zohoarc; b=CJgtuqELiufswQvCPl11AF/wjQW+0ilQ0DGrRk9aHQ0JYUTjaCrDm70ifC3VRcgZpsI4zJNPafGG5HBD5dDaKhvfBwGnKFPP3RHsY/r9edl2eM7a1X3rd+frlKCzNQzpeMEwuQhDcfn6NAEFdMe84TI2P0bUqg616mp2qwP8rDQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927024; 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=/P9+VbQGUfu4/hXNE5JyYSJ8Pk1LfCv2w2o5U/1ZDus=; b=hV6DFwF26IKGvrjb/wjs8o7nPCzi+nAS9kF+CWblyGWZM26ruSdPxwWenwSW12LHH/u05Vk9TCmFxoZc+5IOdG4gTRONI5oMR6x29fAGdiRh8U/XlprPHfwj09KuXuHQjLPr6W7Kfi+BEvAMZQRebz84TkxprwSp4Nfz/H7/qR4= 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 1585927024628862.979970038989; Fri, 3 Apr 2020 08:17:04 -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-351-Ruvsu5kVN5KIOIfburFCRg-1; Fri, 03 Apr 2020 11:17:00 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B9DF780268C; Fri, 3 Apr 2020 15:16:53 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8C53C5C1BE; Fri, 3 Apr 2020 15:16:53 +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 486024E469; Fri, 3 Apr 2020 15:16:53 +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 033FGiPS028224 for ; Fri, 3 Apr 2020 11:16:44 -0400 Received: by smtp.corp.redhat.com (Postfix) id 66BB713CCA0; Fri, 3 Apr 2020 15:16:44 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 62CB1107504 for ; Fri, 3 Apr 2020 15:16:44 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (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 4A0A9101A55F for ; Fri, 3 Apr 2020 15:16:44 +0000 (UTC) Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-160-_QalRfCxMvG6BHqUW5riOA-1; Fri, 03 Apr 2020 11:16:35 -0400 Received: by mail-wr1-f66.google.com with SMTP id h9so8970411wrc.8 for ; Fri, 03 Apr 2020 08:16:34 -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.16.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927023; 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=/P9+VbQGUfu4/hXNE5JyYSJ8Pk1LfCv2w2o5U/1ZDus=; b=TpAASVfo5p4F2ewWm+hC1U9LPGxoRMEvjBt9MTa5BsUcGk/gYTVENCz4eUJcurcm+qjhNa SsrnPexd/apLbCUktmguKOI6iMQzTnhDTBZwRAR321j9vql9mF+gegujA0XAIsUUld6PET O6QirpQ76j1Qkt40Ct68ipaayl1tedM= X-MC-Unique: Ruvsu5kVN5KIOIfburFCRg-1 X-MC-Unique: _QalRfCxMvG6BHqUW5riOA-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=3N0oOyBkgkoJmJTSG9a66MoTvgN3yTP4RBcIK2bUsMA=; b=WlKov0p1gHSgDXiOOq92c+IdINUiNmQjzB8FPa/b8Zwu2+aUEuw/GRlSlYuSWApA3A g3k5KDebnnTjx8Dui+oKsn5Ph9vm3Os0bG4oLIfuVfkPwWq8oVjGvKD3Sn6QZru/Jj4q IbR5qqbRxoaRcSZ0gzaFVa0Us4zvwnxgLai9HpQ+f4V2b+TMgM1bTtFCAOSf/mIc8E0x 2sDxK6QyBwl7RyZgomMsXUvOhGTgX6tZj3Iyd7sqXr/50qDAUCOKK4hbhDfq8nC+vH/H TyuV05fCsh1eao+gUug8oL76vhkzCtgLBukupet7gzep5nBWhcI+iTam+IB+94FLetfX G4nA== X-Gm-Message-State: AGi0PuaL898MkKpJiVA5t1sC8g1XlafGF6CtKs9C4v8IyLs8rVdOR/BD Mr4iEdvOydtby+1hkcxzRACPXaqHNnU= X-Google-Smtp-Source: APiQypK0bLcw2pzsB75KK1WZk7UVSYrOl2OmWxcew6HP6OGFWmXzPgSB18bR8Mb2aaQfRrAKM0HWxw== X-Received: by 2002:adf:ed0a:: with SMTP id a10mr10247871wro.198.1585926993689; Fri, 03 Apr 2020 08:16:33 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 12/36] conf: convert virDomainChrSourceDef to GObject Date: Fri, 3 Apr 2020 17:15:40 +0200 Message-Id: <20200403151604.106616-13-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 033FGiPS028224 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.16 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/conf/domain_conf.c | 35 ++++++++++++++++------------------- src/conf/domain_conf.h | 9 ++++++++- src/qemu/qemu_domain.c | 7 ++++--- src/qemu/qemu_process.c | 3 +-- src/qemu/qemu_virtiofs.c | 12 +++++------- 5 files changed, 34 insertions(+), 32 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 38a0c04c1f..a29e6681a5 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2421,8 +2421,7 @@ virDomainNetDefClear(virDomainNetDefPtr def) =20 switch (def->type) { case VIR_DOMAIN_NET_TYPE_VHOSTUSER: - virObjectUnref(def->data.vhostuser); - def->data.vhostuser =3D NULL; + g_clear_object(&def->data.vhostuser); break; =20 case VIR_DOMAIN_NET_TYPE_SERVER: @@ -2497,6 +2496,7 @@ virDomainNetDefFree(virDomainNetDefPtr def) VIR_FREE(def); } =20 +G_DEFINE_TYPE(virDomainChrSourceDef, vir_domain_chr_source_def, G_TYPE_OBJ= ECT); =20 const char * virDomainChrSourceDefGetPath(virDomainChrSourceDefPtr chr) @@ -2629,9 +2629,9 @@ virDomainChrSourceDefCopy(virDomainChrSourceDefPtr de= st, } =20 static void -virDomainChrSourceDefDispose(void *obj) +virDomainChrSourceDefFinalize(GObject *obj) { - virDomainChrSourceDefPtr def =3D obj; + virDomainChrSourceDefPtr def =3D VIR_DOMAIN_CHR_SOURCE_DEF(obj); size_t i; =20 virDomainChrSourceDefClear(def); @@ -2642,6 +2642,8 @@ virDomainChrSourceDefDispose(void *obj) virSecurityDeviceLabelDefFree(def->seclabels[i]); VIR_FREE(def->seclabels); } + + G_OBJECT_CLASS(vir_domain_chr_source_def_parent_class)->finalize(obj); } =20 =20 @@ -13215,34 +13217,29 @@ virDomainChrSourceDefParseXML(virDomainChrSourceD= efPtr def, } =20 =20 -static virClassPtr virDomainChrSourceDefClass; +static void +vir_domain_chr_source_def_init(virDomainChrSourceDef *def G_GNUC_UNUSED) +{ +} =20 -static int -virDomainChrSourceDefOnceInit(void) +static void +vir_domain_chr_source_def_class_init(virDomainChrSourceDefClass *klass) { - if (!VIR_CLASS_NEW(virDomainChrSourceDef, virClassForObject())) - return -1; + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 - return 0; + obj->finalize =3D virDomainChrSourceDefFinalize; } =20 -VIR_ONCE_GLOBAL_INIT(virDomainChrSourceDef); - virDomainChrSourceDefPtr virDomainChrSourceDefNew(virDomainXMLOptionPtr xmlopt) { virDomainChrSourceDefPtr def =3D NULL; =20 - if (virDomainChrSourceDefInitialize() < 0) - return NULL; - - if (!(def =3D virObjectNew(virDomainChrSourceDefClass))) - return NULL; + def =3D VIR_DOMAIN_CHR_SOURCE_DEF(g_object_new(VIR_TYPE_DOMAIN_CHR_SOU= RCE_DEF, NULL)); =20 if (xmlopt && xmlopt->privateData.chrSourceNew && !(def->privateData =3D xmlopt->privateData.chrSourceNew())) { - virObjectUnref(def); - def =3D NULL; + g_clear_object(&def); } =20 return def; diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 7e2792ae62..b6b2a72dd4 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1173,7 +1173,7 @@ struct _virDomainChrSourceReconnectDef { =20 /* The host side information for a character device. */ struct _virDomainChrSourceDef { - virObject parent; + GObject parent; int type; /* virDomainChrType */ virObjectPtr privateData; union { @@ -1219,6 +1219,13 @@ struct _virDomainChrSourceDef { virSecurityDeviceLabelDefPtr *seclabels; }; =20 +#define VIR_TYPE_DOMAIN_CHR_SOURCE_DEF vir_domain_chr_source_def_get_type() +G_DECLARE_FINAL_TYPE(virDomainChrSourceDef, + vir_domain_chr_source_def, + VIR, + DOMAIN_CHR_SOURCE_DEF, + GObject); + /* A complete character device, both host and domain views. */ struct _virDomainChrDef { int deviceType; /* enum virDomainChrDeviceType */ diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 32dd69892a..2506fa2eea 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2315,7 +2315,8 @@ qemuDomainObjPrivateFree(void *data) =20 qemuDomainObjPrivateDataClear(priv); =20 - virObjectUnref(priv->monConfig); + if (priv->monConfig) + g_object_unref(priv->monConfig); qemuDomainObjFreeJob(priv); VIR_FREE(priv->lockState); VIR_FREE(priv->origname); @@ -3934,8 +3935,8 @@ qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, error: virBitmapFree(priv->namespaces); priv->namespaces =3D NULL; - virObjectUnref(priv->monConfig); - priv->monConfig =3D NULL; + if (priv->monConfig) + g_clear_object(&priv->monConfig); virStringListFree(priv->qemuDevices); priv->qemuDevices =3D NULL; return -1; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index ef34dd8cfd..817e858ac2 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -7390,8 +7390,7 @@ void qemuProcessStop(virQEMUDriverPtr driver, if (priv->monConfig) { if (priv->monConfig->type =3D=3D VIR_DOMAIN_CHR_TYPE_UNIX) unlink(priv->monConfig->data.nix.path); - virObjectUnref(priv->monConfig); - priv->monConfig =3D NULL; + g_clear_object(&priv->monConfig); } =20 qemuDomainObjStopWorker(vm); diff --git a/src/qemu/qemu_virtiofs.c b/src/qemu/qemu_virtiofs.c index 2e239cad66..483af5c798 100644 --- a/src/qemu/qemu_virtiofs.c +++ b/src/qemu/qemu_virtiofs.c @@ -80,7 +80,7 @@ qemuVirtioFSOpenChardev(virQEMUDriverPtr driver, virDomainObjPtr vm, const char *socket_path) { - virDomainChrSourceDefPtr chrdev =3D virDomainChrSourceDefNew(NULL); + g_autoptr(virDomainChrSourceDef) chrdev =3D virDomainChrSourceDefNew(N= ULL); virDomainChrDef chr =3D { .source =3D chrdev }; VIR_AUTOCLOSE fd =3D -1; int ret =3D -1; @@ -90,23 +90,21 @@ qemuVirtioFSOpenChardev(virQEMUDriverPtr driver, chrdev->data.nix.path =3D g_strdup(socket_path); =20 if (qemuSecuritySetDaemonSocketLabel(driver->securityManager, vm->def)= < 0) - goto cleanup; + return ret; fd =3D qemuOpenChrChardevUNIXSocket(chrdev); if (fd < 0) { ignore_value(qemuSecurityClearSocketLabel(driver->securityManager,= vm->def)); - goto cleanup; + return ret; } if (qemuSecurityClearSocketLabel(driver->securityManager, vm->def) < 0) - goto cleanup; + return ret; =20 if (qemuSecuritySetChardevLabel(driver, vm, &chr) < 0) - goto cleanup; + return ret; =20 ret =3D fd; fd =3D -1; =20 - cleanup: - virObjectUnref(chrdev); return ret; } =20 --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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=1585927021; cv=none; d=zohomail.com; s=zohoarc; b=gzhG8RVTVSWur1znbEAjghg3fHjdqd49joDzlXTwiZevIV7i2rY4oOOW2QOoLGge3UpClkC5C+yfEw3Uq14V+IyJ1K4PHT0u8VLwJxZ5D4a9PUxXXue0p22mXDTAGjaikkjvCH0lw3WTaxqBv0Uemiaqk2nXZ1h2efHKs54jlqE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927021; 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=NhQkSJpZJSxCj5aIgG0FgXOiFpf3KMT9Vg6IvyO6kc4=; b=cOk7uVgMDqkb+rIvaj/6oeINv/9HDiDo4SZdbs+ZQJVSzl4pGClpWt+KQpTLxLcmxHhkKKnehdkZBTkINq6gQ+2Z6RmF5W1QmNDUj6quO8Anv7uWMGUoGysM9yOLTqffqmLNVF/TwCQ1kKUxvPDyxFiTp5Tpjo//IOrqVcLdDiE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1585927021293677.4642316952504; Fri, 3 Apr 2020 08:17:01 -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-276-tBt1YzGjPq6dnJtCJDnITQ-1; Fri, 03 Apr 2020 11:16:56 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 92FF88017F5; Fri, 3 Apr 2020 15:16:49 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5C2661147DE; Fri, 3 Apr 2020 15:16:49 +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 0F0854E466; Fri, 3 Apr 2020 15:16:49 +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 033FGflh028184 for ; Fri, 3 Apr 2020 11:16:41 -0400 Received: by smtp.corp.redhat.com (Postfix) id A8B3613CCA0; Fri, 3 Apr 2020 15:16:41 +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 A4DD3107504 for ; Fri, 3 Apr 2020 15:16:39 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (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 4AF4F80030D for ; Fri, 3 Apr 2020 15:16:39 +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-107-ciaSS3gBOYyzxsRU9RBP_A-1; Fri, 03 Apr 2020 11:16:36 -0400 Received: by mail-wr1-f53.google.com with SMTP id w15so2717917wrv.10 for ; Fri, 03 Apr 2020 08:16:36 -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.16.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927020; 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=NhQkSJpZJSxCj5aIgG0FgXOiFpf3KMT9Vg6IvyO6kc4=; b=MeRtRDP8JgNuPb3NXDOXHQeyn74FzamPVnxUVFY/t/BOdoCK6S9VcOf3jzxVkD7PHL+Nda QZHQ3tRSe024cQ1j2DGVebX1s96AuK6FlH+GWvj1/UyKUkkzwN1Agw9hAfuaheKQ2gi6Z3 CiDQxtyTHGV+So4mUJCeyGII1EOs90c= X-MC-Unique: tBt1YzGjPq6dnJtCJDnITQ-1 X-MC-Unique: ciaSS3gBOYyzxsRU9RBP_A-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=kVcHHCL+3qBaNWvcFatVsEqX1zYJc9xGd86pnPprXTQ=; b=GecQxyNEgXvMczWDvddZrF2ORgO0zP184d/XhRsCg2f25g2oVeofhuepupiZTEz1SP BaV/s+cx1IpJgidV6RTf+bsuBjs23tlreoX9oTugGpWyIxBQijlnHVoiWG4tEfFkVG0A knh4io53PedES6a8Ay0yqn33qOVKYTrI2hVKzhpc6PKpX/87zJz32dPXwBSrI3Ye14e2 rLhNCjPc1TSaUDfTjM69CDfzd7Id9HuiOTb0nTCbRB1sceTi+rYtX1adwmlqoywGJu2P b0zX+yI637aCHjmS5ZK77csRmHbL7AP+ZHQKE0X6fEznOwBNg1djmXLwyNhYGszfoorN CiTg== X-Gm-Message-State: AGi0PubFLdxMhz3Nm3BStB7olQKvrnYVzCQJy/yYcPz9DnB+yPpjwAWn 273jJfz9MgaF/QyNT/zxftlDGRiPenE= X-Google-Smtp-Source: APiQypINyktWT12EyTF8mPnZqiZPkdKJD+q51R7qIcIxczwfHn7HJOXlCr6DBUy6khzVYhT4pi2+bg== X-Received: by 2002:a5d:540c:: with SMTP id g12mr10115189wrv.178.1585926995115; Fri, 03 Apr 2020 08:16:35 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 13/36] admin: convert virAdmServer to GObject Date: Fri, 3 Apr 2020 17:15:41 +0200 Message-Id: <20200403151604.106616-14-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 033FGflh028184 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.11 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/admin/libvirt-admin.c | 2 +- src/admin/libvirt_admin_private.syms | 1 - src/datatypes.c | 42 ++++++++++++++++++---------- src/datatypes.h | 20 +++++++------ 4 files changed, 40 insertions(+), 25 deletions(-) diff --git a/src/admin/libvirt-admin.c b/src/admin/libvirt-admin.c index 835b5560d2..ed7a57cbbb 100644 --- a/src/admin/libvirt-admin.c +++ b/src/admin/libvirt-admin.c @@ -586,7 +586,7 @@ int virAdmServerFree(virAdmServerPtr srv) =20 virCheckAdmServerReturn(srv, -1); =20 - virObjectUnref(srv); + g_object_unref(srv); return 0; } =20 diff --git a/src/admin/libvirt_admin_private.syms b/src/admin/libvirt_admin= _private.syms index 157a45341e..270fa43995 100644 --- a/src/admin/libvirt_admin_private.syms +++ b/src/admin/libvirt_admin_private.syms @@ -40,7 +40,6 @@ virAdmConnectCloseCallbackDataRegister; virAdmConnectCloseCallbackDataReset; virAdmConnectCloseCallbackDataUnregister; virAdmGetServer; -virAdmServerClass; =20 # Let emacs know we want case-insensitive sorting # Local Variables: diff --git a/src/datatypes.c b/src/datatypes.c index 552115c7a3..d6afaf89ad 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -71,11 +71,25 @@ virClassPtr virAdmConnectCloseCallbackDataClass; static void virAdmConnectDispose(void *obj); static void virAdmConnectCloseCallbackDataDispose(void *obj); =20 -virClassPtr virAdmServerClass; virClassPtr virAdmClientClass; -static void virAdmServerDispose(void *obj); static void virAdmClientDispose(void *obj); =20 +G_DEFINE_TYPE(virAdmServer, vir_adm_server, G_TYPE_OBJECT); +static void virAdmServerFinalize(GObject *obj); + +static void +vir_adm_server_init(virAdmServer *srv G_GNUC_UNUSED) +{ +} + +static void +vir_adm_server_class_init(virAdmServerClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virAdmServerFinalize; +} + static int virDataTypesOnceInit(void) { @@ -105,7 +119,6 @@ virDataTypesOnceInit(void) =20 DECLARE_CLASS_LOCKABLE(virAdmConnect); DECLARE_CLASS_LOCKABLE(virAdmConnectCloseCallbackData); - DECLARE_CLASS(virAdmServer); DECLARE_CLASS(virAdmClient); =20 #undef DECLARE_CLASS_COMMON @@ -1173,31 +1186,30 @@ virAdmConnectCloseCallbackDataRegister(virAdmConnec= tCloseCallbackDataPtr cbdata, virAdmServerPtr virAdmGetServer(virAdmConnectPtr conn, const char *name) { - virAdmServerPtr ret =3D NULL; + g_autoptr(virAdmServer) ret =3D NULL; =20 if (virDataTypesInitialize() < 0) - goto error; + return NULL; + + ret =3D VIR_ADM_SERVER(g_object_new(VIR_TYPE_ADM_SERVER, NULL)); =20 - if (!(ret =3D virObjectNew(virAdmServerClass))) - goto error; ret->name =3D g_strdup(name); =20 ret->conn =3D virObjectRef(conn); =20 - return ret; - error: - virObjectUnref(ret); - return NULL; + return g_steal_pointer(&ret); } =20 static void -virAdmServerDispose(void *obj) +virAdmServerFinalize(GObject *obj) { - virAdmServerPtr srv =3D obj; + virAdmServerPtr srv =3D VIR_ADM_SERVER(obj); VIR_DEBUG("release server srv=3D%p name=3D%s", srv, srv->name); =20 VIR_FREE(srv->name); virObjectUnref(srv->conn); + + G_OBJECT_CLASS(vir_adm_server_parent_class)->finalize(obj); } =20 virAdmClientPtr @@ -1215,7 +1227,7 @@ virAdmGetClient(virAdmServerPtr srv, const unsigned l= ong long id, ret->id =3D id; ret->timestamp =3D timestamp; ret->transport =3D transport; - ret->srv =3D virObjectRef(srv); + ret->srv =3D g_object_ref(srv); =20 return ret; error: @@ -1229,5 +1241,5 @@ virAdmClientDispose(void *obj) virAdmClientPtr clt =3D obj; VIR_DEBUG("release client clt=3D%p, id=3D%llu", clt, clt->id); =20 - virObjectUnref(clt->srv); + g_object_unref(clt->srv); } diff --git a/src/datatypes.h b/src/datatypes.h index 2d0407f7ec..20b64ca788 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -28,6 +28,8 @@ #include "virobject.h" #include "viruuid.h" =20 +#include + extern virClassPtr virConnectClass; extern virClassPtr virDomainClass; extern virClassPtr virDomainCheckpointClass; @@ -44,9 +46,11 @@ extern virClassPtr virStorageVolClass; extern virClassPtr virStoragePoolClass; =20 extern virClassPtr virAdmConnectClass; -extern virClassPtr virAdmServerClass; extern virClassPtr virAdmClientClass; =20 +#define VIR_TYPE_ADM_SERVER vir_adm_server_get_type() +G_DECLARE_FINAL_TYPE(virAdmServer, vir_adm_server, VIR, ADM_SERVER, GObjec= t); + #define virCheckConnectReturn(obj, retval) \ do { \ if (!virObjectIsClass(obj, virConnectClass)) { \ @@ -419,8 +423,8 @@ extern virClassPtr virAdmClientClass; =20 #define virCheckAdmServerReturn(obj, retval) \ do { \ - virAdmServerPtr _srv =3D (obj); \ - if (!virObjectIsClass(_srv, virAdmServerClass) || \ + virAdmServerPtr _srv =3D VIR_ADM_SERVER(obj); \ + if (!G_IS_OBJECT(_srv) || !(G_OBJECT_TYPE(_srv) =3D=3D VIR_TYPE_AD= M_SERVER) || \ !virObjectIsClass(_srv->conn, virAdmConnectClass)) { \ virReportErrorHelper(VIR_FROM_THIS, VIR_ERR_INVALID_CONN, \ __FILE__, __FUNCTION__, __LINE__, \ @@ -431,8 +435,8 @@ extern virClassPtr virAdmClientClass; } while (0) #define virCheckAdmServerGoto(obj, label) \ do { \ - virAdmServerPtr _srv =3D (obj); \ - if (!virObjectIsClass(_srv, virAdmServerClass) || \ + virAdmServerPtr _srv =3D VIR_ADM_SERVER(obj); \ + if (!G_IS_OBJECT(_srv) || !(G_OBJECT_TYPE(_srv) =3D=3D VIR_TYPE_AD= M_SERVER) || \ !virObjectIsClass(_srv->conn, virAdmConnectClass)) { \ virReportErrorHelper(VIR_FROM_THIS, VIR_ERR_INVALID_CONN, \ __FILE__, __FUNCTION__, __LINE__, \ @@ -445,7 +449,7 @@ extern virClassPtr virAdmClientClass; do { \ virAdmClientPtr _clt =3D (obj); \ if (!virObjectIsClass(_clt, virAdmClientClass) || \ - !virObjectIsClass(_clt->srv, virAdmServerClass) || \ + !G_IS_OBJECT(_clt->srv) || !(G_OBJECT_TYPE(_clt->srv) =3D=3D V= IR_TYPE_ADM_SERVER) || \ !virObjectIsClass(_clt->srv->conn, virAdmConnectClass)) { \ virReportErrorHelper(VIR_FROM_THIS, VIR_ERR_INVALID_CONN, \ __FILE__, __FUNCTION__, __LINE__, \ @@ -458,7 +462,7 @@ extern virClassPtr virAdmClientClass; do { \ virAdmClientPtr _clt =3D (obj); \ if (!virObjectIsClass(_clt, virAdmClientClass) || \ - !virObjectIsClass(_clt->srv, virAdmServerClass) || \ + !G_IS_OBJECT(_clt->srv) || !(G_OBJECT_TYPE(_clt->srv) =3D=3D V= IR_TYPE_ADM_SERVER) || \ !virObjectIsClass(_clt->srv->conn, virAdmConnectClass)) { \ virReportErrorHelper(VIR_FROM_THIS, VIR_ERR_INVALID_CONN, \ __FILE__, __FUNCTION__, __LINE__, \ @@ -573,7 +577,7 @@ struct _virAdmConnect { * Internal structure associated to a daemon server */ struct _virAdmServer { - virObject parent; + GObject parent; virAdmConnectPtr conn; /* pointer back to the admin connectio= n */ char *name; /* the server external name */ }; --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927031; cv=none; d=zohomail.com; s=zohoarc; b=D5IzjMPzzUasofbT4k+tOq0kprlJ6Ti1sQFz7Qy1eA6CDIhfcIHBhh5VSSpRTiQlO5DUe2YVhr1l0mVoGGPv+xkOynWSyJlIICOc5ZEEbAgvNo5NL53TCPF+kQJe2oA9gDWR5hJs/CJkXj91W7Q6s8zfALibMCI71aV3vEyPk7A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927031; 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=EsitiE52Ie1hJ9A89t3CnQIkclIWYHAWJhXwycLx/nQ=; b=d1nHnTuldmmwkrhWgU1n9l2X4MUAeRZ1W0Juy1LNLKxO/n8AI/gwaXHBk/jQUU5HQ2FqLGPDLlnHZbvj5vxwe05RjRa9TjbwOWNkb8pXZRD3Qf1sEruNpG5MXgqfbbl720NhU91SWGStzMtuVi4BnpDD2WR5LCPz9qQ5sk9O3+k= 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 158592703164149.90395953460575; Fri, 3 Apr 2020 08:17:11 -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-71-icDleo3eNQSq0u62HHyARw-1; Fri, 03 Apr 2020 11:17:06 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D431A801E5C; Fri, 3 Apr 2020 15:16:57 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A6BA9A63C2; Fri, 3 Apr 2020 15:16:57 +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 58A6B4E470; Fri, 3 Apr 2020 15:16:57 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FGeBh028177 for ; Fri, 3 Apr 2020 11:16:40 -0400 Received: by smtp.corp.redhat.com (Postfix) id 873932166B2E; Fri, 3 Apr 2020 15:16:40 +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 8333E2166B2C for ; Fri, 3 Apr 2020 15:16:40 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (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 689318FF66C for ; Fri, 3 Apr 2020 15:16:40 +0000 (UTC) Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-302-rjFVxjAaOAe2EZ8WOqvykg-1; Fri, 03 Apr 2020 11:16:38 -0400 Received: by mail-wm1-f67.google.com with SMTP id e9so8124160wme.4 for ; Fri, 03 Apr 2020 08:16:37 -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.16.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927030; 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=EsitiE52Ie1hJ9A89t3CnQIkclIWYHAWJhXwycLx/nQ=; b=HYa2wikugqIcO7tCjoX03LhJZfnyu0MthM01AhNNGsKVhyr9SuQEndLkg3Dc4ZMv4cByDN aK52Ych9FPfFcQ9my8mQIWevh5OrWlJcRG+4Ij1vADbn5FugxD5lSmWISc4b+jF+86L1uF 7r1LXj7bn9Ndf/LhrOY5dmX5fMfz7C0= X-MC-Unique: icDleo3eNQSq0u62HHyARw-1 X-MC-Unique: rjFVxjAaOAe2EZ8WOqvykg-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=ydBXSGb7vFJfoOgtkOav2x7marP+BPlGaHlKPqUT26A=; b=K0bXBwI8vWfYP84dHP+04JN4pcDQw2QRaOmTMq5+pmkXMlxZ+NprHZB9VbniPbDkig drqgh89VIocBMsaMMrLK3Yx7mMuSFyptZC9yaTIOic9S51b9zpVy5U04Ol3FYPe08Wx6 pxt3njSf9jChcEW1wTAm9kGKIvbIPpxsn2FhwZP7dFtYBKbIvqSiWtuR8JNIVgg9M0ym tD3v6DYoxLNaxF6h9ZCA3YYGriCCRnJHlp0MofgWqfh9P8uX+nBj8tUHRkkMrOh2h0vz bNI5Uz4G3an3ujIKjjsEp6Pqp3b9u0e9IYf89ZU/8YDjXj7RHTx6vTS+orCNySd1Cmsi Y+Ng== X-Gm-Message-State: AGi0PuZoy/tYaj5FcpN6PXDtHaW6mopu+GHk81kRUjrWBtRSawJR6wq4 YKfv1i4nTXoZ4cEfPIqLubfOYyRoZvI= X-Google-Smtp-Source: APiQypJADx4EJPV5zJylZd11qmTmoaUdYWHmXsvcY14dunj1kUPhPtUd7hGSdH2hHYya+yxvzUH4Rg== X-Received: by 2002:a1c:99d3:: with SMTP id b202mr9519699wme.170.1585926996527; Fri, 03 Apr 2020 08:16:36 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 14/36] admin: convert virAdmClient to GObject Date: Fri, 3 Apr 2020 17:15:42 +0200 Message-Id: <20200403151604.106616-15-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.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGeBh028177 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.15 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/admin/libvirt-admin.c | 2 +- src/admin/libvirt_admin_private.syms | 1 - src/datatypes.c | 36 ++++++++++++++++++---------- src/datatypes.h | 13 +++++----- 4 files changed, 31 insertions(+), 21 deletions(-) diff --git a/src/admin/libvirt-admin.c b/src/admin/libvirt-admin.c index ed7a57cbbb..6f86de4360 100644 --- a/src/admin/libvirt-admin.c +++ b/src/admin/libvirt-admin.c @@ -676,7 +676,7 @@ int virAdmClientFree(virAdmClientPtr client) =20 virCheckAdmClientReturn(client, -1); =20 - virObjectUnref(client); + g_object_unref(client); return 0; } =20 diff --git a/src/admin/libvirt_admin_private.syms b/src/admin/libvirt_admin= _private.syms index 270fa43995..9ba4b68932 100644 --- a/src/admin/libvirt_admin_private.syms +++ b/src/admin/libvirt_admin_private.syms @@ -34,7 +34,6 @@ xdr_admin_server_set_threadpool_parameters_args; xdr_admin_server_update_tls_files_args; =20 # datatypes.h -virAdmClientClass; virAdmConnectClass; virAdmConnectCloseCallbackDataRegister; virAdmConnectCloseCallbackDataReset; diff --git a/src/datatypes.c b/src/datatypes.c index d6afaf89ad..68fc216ffa 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -71,8 +71,21 @@ virClassPtr virAdmConnectCloseCallbackDataClass; static void virAdmConnectDispose(void *obj); static void virAdmConnectCloseCallbackDataDispose(void *obj); =20 -virClassPtr virAdmClientClass; -static void virAdmClientDispose(void *obj); +G_DEFINE_TYPE(virAdmClient, vir_adm_client, G_TYPE_OBJECT); +static void virAdmClientFinalize(GObject *obj); + +static void +vir_adm_client_init(virAdmClient *clt G_GNUC_UNUSED) +{ +} + +static void +vir_adm_client_class_init(virAdmClientClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virAdmClientFinalize; +} =20 G_DEFINE_TYPE(virAdmServer, vir_adm_server, G_TYPE_OBJECT); static void virAdmServerFinalize(GObject *obj); @@ -119,7 +132,6 @@ virDataTypesOnceInit(void) =20 DECLARE_CLASS_LOCKABLE(virAdmConnect); DECLARE_CLASS_LOCKABLE(virAdmConnectCloseCallbackData); - DECLARE_CLASS(virAdmClient); =20 #undef DECLARE_CLASS_COMMON #undef DECLARE_CLASS_LOCKABLE @@ -1216,30 +1228,28 @@ virAdmClientPtr virAdmGetClient(virAdmServerPtr srv, const unsigned long long id, unsigned long long timestamp, unsigned int transport) { - virAdmClientPtr ret =3D NULL; + g_autoptr(virAdmClient) ret =3D NULL; =20 if (virDataTypesInitialize() < 0) - goto error; + return NULL; =20 - if (!(ret =3D virObjectNew(virAdmClientClass))) - goto error; + ret =3D VIR_ADM_CLIENT(g_object_new(VIR_TYPE_ADM_CLIENT, NULL)); =20 ret->id =3D id; ret->timestamp =3D timestamp; ret->transport =3D transport; ret->srv =3D g_object_ref(srv); =20 - return ret; - error: - virObjectUnref(ret); - return NULL; + return g_steal_pointer(&ret); } =20 static void -virAdmClientDispose(void *obj) +virAdmClientFinalize(GObject *obj) { - virAdmClientPtr clt =3D obj; + virAdmClientPtr clt =3D VIR_ADM_CLIENT(obj); VIR_DEBUG("release client clt=3D%p, id=3D%llu", clt, clt->id); =20 g_object_unref(clt->srv); + + G_OBJECT_CLASS(vir_adm_client_parent_class)->finalize(obj); } diff --git a/src/datatypes.h b/src/datatypes.h index 20b64ca788..4e9f338f8b 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -46,10 +46,11 @@ extern virClassPtr virStorageVolClass; extern virClassPtr virStoragePoolClass; =20 extern virClassPtr virAdmConnectClass; -extern virClassPtr virAdmClientClass; =20 #define VIR_TYPE_ADM_SERVER vir_adm_server_get_type() G_DECLARE_FINAL_TYPE(virAdmServer, vir_adm_server, VIR, ADM_SERVER, GObjec= t); +#define VIR_TYPE_ADM_CLIENT vir_adm_client_get_type() +G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR, ADM_CLIENT, GObjec= t); =20 #define virCheckConnectReturn(obj, retval) \ do { \ @@ -447,8 +448,8 @@ G_DECLARE_FINAL_TYPE(virAdmServer, vir_adm_server, VIR,= ADM_SERVER, GObject); =20 #define virCheckAdmClientReturn(obj, retval) \ do { \ - virAdmClientPtr _clt =3D (obj); \ - if (!virObjectIsClass(_clt, virAdmClientClass) || \ + virAdmClientPtr _clt =3D VIR_ADM_CLIENT(obj); \ + if (!G_IS_OBJECT(_clt) || !(G_OBJECT_TYPE(_clt) =3D=3D VIR_TYPE_AD= M_CLIENT) || \ !G_IS_OBJECT(_clt->srv) || !(G_OBJECT_TYPE(_clt->srv) =3D=3D V= IR_TYPE_ADM_SERVER) || \ !virObjectIsClass(_clt->srv->conn, virAdmConnectClass)) { \ virReportErrorHelper(VIR_FROM_THIS, VIR_ERR_INVALID_CONN, \ @@ -460,8 +461,8 @@ G_DECLARE_FINAL_TYPE(virAdmServer, vir_adm_server, VIR,= ADM_SERVER, GObject); } while (0) #define virCheckAdmClientGoto(obj, label) \ do { \ - virAdmClientPtr _clt =3D (obj); \ - if (!virObjectIsClass(_clt, virAdmClientClass) || \ + virAdmClientPtr _clt =3D VIR_ADM_CLIENT(obj); \ + if (!G_IS_OBJECT(_clt) || !(G_OBJECT_TYPE(_clt) =3D=3D VIR_TYPE_AD= M_CLIENT) || \ !G_IS_OBJECT(_clt->srv) || !(G_OBJECT_TYPE(_clt->srv) =3D=3D V= IR_TYPE_ADM_SERVER) || \ !virObjectIsClass(_clt->srv->conn, virAdmConnectClass)) { \ virReportErrorHelper(VIR_FROM_THIS, VIR_ERR_INVALID_CONN, \ @@ -588,7 +589,7 @@ struct _virAdmServer { * Internal structure associated to a client connected to daemon */ struct _virAdmClient { - virObject parent; + GObject parent; virAdmServerPtr srv; /* pointer to the server client is * connected to, which also holds a * reference back to the admin connect= ion --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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=1585927020; cv=none; d=zohomail.com; s=zohoarc; b=ER2O0JyEdzgzReni9Emnusac2BHhw0e/WrXwUcVluoK7hdNT3XclaAPKTj52GRSHohL71nLzusAyPOmgvYA/X0vKwEGitiOdfJrNhXnbZYSZA8hkYqwD4AaJxvJna6htziJv+GTw86hwr8KlW7nXQKjj6+CdwlksQUi1tohJ83M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927020; 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=weponKK/ILHcTySxkHCR91ITSxEULaK8HYetn+h4k2Q=; b=QjLyaSbYdhnN14atCUpZjpt03DeP1gK3vl5OSRhMToCKX8pGVJaN44japRzb66Pbomumo01uuzDNp+3XrI2F++8IAplvBmK4bF0rylzq+6BhiEPOAIwhYOi1g35Mw5X2wt/5h+wtnGdhB2ztPKwbJv4AJ0/ugS5FoJfdl30OtZI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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-delivery-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1585927020570912.8982984637194; Fri, 3 Apr 2020 08:17:00 -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-32-_JbKzet7MzGkHQ6QN8tv2g-1; Fri, 03 Apr 2020 11:16:56 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 72A9418C35A5; Fri, 3 Apr 2020 15:16:48 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0311126DEE; Fri, 3 Apr 2020 15:16:48 +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 AF0CF4E461; Fri, 3 Apr 2020 15:16:47 +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 033FGjT5028230 for ; Fri, 3 Apr 2020 11:16:45 -0400 Received: by smtp.corp.redhat.com (Postfix) id A91B013CCA0; Fri, 3 Apr 2020 15:16:45 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A5348107504 for ; Fri, 3 Apr 2020 15:16:45 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (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 82BD5185A791 for ; Fri, 3 Apr 2020 15:16:45 +0000 (UTC) Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-389-NqDvpx1XO_OrQkvylsqyZg-1; Fri, 03 Apr 2020 11:16:39 -0400 Received: by mail-wr1-f45.google.com with SMTP id p10so8962742wrt.6 for ; Fri, 03 Apr 2020 08:16:39 -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.16.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927019; 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=weponKK/ILHcTySxkHCR91ITSxEULaK8HYetn+h4k2Q=; b=azFB4GzX50hsEdWx1B4T21cKNKD6XhKsDGZN+P9oHzUKWHf3FNfAQAxNms4yFQBVuDmcHz 9ujyYAtKuz4OgVZezIwAyKKtIfCEpDQzGuP1+gl8t9YAh3r5JRIfMv8wLgFIe4KUEClcfd 7q/MoN6FQSvjltEGgEtjZbg5xyM2k+I= X-MC-Unique: _JbKzet7MzGkHQ6QN8tv2g-1 X-MC-Unique: NqDvpx1XO_OrQkvylsqyZg-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=LPWRIMpZgRyYbb9lVHDWaeBb8QKVms7Zly0nLrxa0/c=; b=EoluJViJ7ZXl0GMMy8/iHSoM6g/6deQ3s1iKMjudh/RVmVyCEl4ASwhAwzwIEJDWdA kBVRk8lcoqqgGiRBB+SMrsC79SZ65e2P99T+p78A/VOqGpHz6m2aJMTYLvKxfIQM+wbZ FTagdyWLVXQRMAla4YNHy+cplTGI9NClIN4q8CpSl/Pyps9SOXCjyadbLWJVqd/B84mn r6Rp4HC0zxg5kfu83PO0QdjFX4jEJBoDmMPj63QyUBsgYVWEP6TeMng0f1VULVULUoaI o76H+RASxPKsltnOo9rS2RYBD6l3dMXqL8GuUOU5WYb2DBSn6SHJ6ICocJ+m2IUeHsRR TLzw== X-Gm-Message-State: AGi0PuaxMA4IfeOgAmsY/skmIaj7gnKahrRoGpznEVNdo2ggb/JD1Z6l 5dDE+J0INqraVqD1mxSvF3v4EZo7oGI= X-Google-Smtp-Source: APiQypKf4aNcgcHuyebHIc/pp+HR+YmJDxcdz80XLG26t1VJpQ5zWQhrNPdL0fNj1KbuphbiUssUPg== X-Received: by 2002:a5d:4bc1:: with SMTP id l1mr10261354wrt.103.1585926997956; Fri, 03 Apr 2020 08:16:37 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 15/36] datatypes: convert virDomainCheckpoint to GObject Date: Fri, 3 Apr 2020 17:15:43 +0200 Message-Id: <20200403151604.106616-16-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 033FGjT5028230 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.23 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/conf/virdomaincheckpointobjlist.c | 6 ++-- src/datatypes.c | 44 ++++++++++++++++----------- src/datatypes.h | 14 ++++++--- src/libvirt-domain-checkpoint.c | 7 ++--- src/libvirt_private.syms | 1 - 5 files changed, 44 insertions(+), 28 deletions(-) diff --git a/src/conf/virdomaincheckpointobjlist.c b/src/conf/virdomainchec= kpointobjlist.c index a4942ea706..5c457dc876 100644 --- a/src/conf/virdomaincheckpointobjlist.c +++ b/src/conf/virdomaincheckpointobjlist.c @@ -235,8 +235,10 @@ virDomainListCheckpoints(virDomainCheckpointObjListPtr= checkpoints, VIR_FREE(names[i]); VIR_FREE(names); if (ret < 0 && list) { - for (i =3D 0; i < count; i++) - virObjectUnref(list[i]); + for (i =3D 0; i < count; i++) { + if (list[i]) + g_object_unref(list[i]); + } VIR_FREE(list); } return ret; diff --git a/src/datatypes.c b/src/datatypes.c index 68fc216ffa..1e0861aa5f 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -36,7 +36,6 @@ VIR_LOG_INIT("datatypes"); virClassPtr virConnectClass; virClassPtr virConnectCloseCallbackDataClass; virClassPtr virDomainClass; -virClassPtr virDomainCheckpointClass; virClassPtr virDomainSnapshotClass; virClassPtr virInterfaceClass; virClassPtr virNetworkClass; @@ -52,7 +51,6 @@ virClassPtr virStoragePoolClass; static void virConnectDispose(void *obj); static void virConnectCloseCallbackDataDispose(void *obj); static void virDomainDispose(void *obj); -static void virDomainCheckpointDispose(void *obj); static void virDomainSnapshotDispose(void *obj); static void virInterfaceDispose(void *obj); static void virNetworkDispose(void *obj); @@ -65,6 +63,22 @@ static void virStreamDispose(void *obj); static void virStorageVolDispose(void *obj); static void virStoragePoolDispose(void *obj); =20 +G_DEFINE_TYPE(virDomainCheckpoint, vir_domain_checkpoint, G_TYPE_OBJECT); +static void virDomainCheckpointFinalize(GObject *obj); + +static void +vir_domain_checkpoint_init(virDomainCheckpoint *dc G_GNUC_UNUSED) +{ +} + +static void +vir_domain_checkpoint_class_init(virDomainCheckpointClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virDomainCheckpointFinalize; +} + virClassPtr virAdmConnectClass; virClassPtr virAdmConnectCloseCallbackDataClass; =20 @@ -117,7 +131,6 @@ virDataTypesOnceInit(void) DECLARE_CLASS_LOCKABLE(virConnect); DECLARE_CLASS_LOCKABLE(virConnectCloseCallbackData); DECLARE_CLASS(virDomain); - DECLARE_CLASS(virDomainCheckpoint); DECLARE_CLASS(virDomainSnapshot); DECLARE_CLASS(virInterface); DECLARE_CLASS(virNetwork); @@ -984,7 +997,7 @@ virNWFilterBindingDispose(void *obj) * @name: pointer to the domain checkpoint name * * Allocates a new domain checkpoint object. When the object is no longer = needed, - * virObjectUnref() must be called in order to not leak data. + * g_object_unref() must be called in order to not leak data. * * Returns a pointer to the domain checkpoint object, or NULL on error. */ @@ -992,30 +1005,25 @@ virDomainCheckpointPtr virGetDomainCheckpoint(virDomainPtr domain, const char *name) { - virDomainCheckpointPtr ret =3D NULL; + g_autoptr(virDomainCheckpoint) ret =3D NULL; =20 if (virDataTypesInitialize() < 0) return NULL; =20 - virCheckDomainGoto(domain, error); - virCheckNonNullArgGoto(name, error); + virCheckDomainReturn(domain, NULL); + virCheckNonNullArgReturn(name, NULL); =20 - if (!(ret =3D virObjectNew(virDomainCheckpointClass))) - goto error; + ret =3D VIR_DOMAIN_CHECKPOINT(g_object_new(VIR_TYPE_DOMAIN_CHECKPOINT,= NULL)); ret->name =3D g_strdup(name); =20 ret->domain =3D virObjectRef(domain); =20 - return ret; - - error: - virObjectUnref(ret); - return NULL; + return g_steal_pointer(&ret); } =20 =20 /** - * virDomainCheckpointDispose: + * virDomainCheckpointFinalize: * @obj: the domain checkpoint to release * * Unconditionally release all memory associated with a checkpoint. @@ -1025,13 +1033,15 @@ virGetDomainCheckpoint(virDomainPtr domain, * which may also be released if its ref count hits zero. */ static void -virDomainCheckpointDispose(void *obj) +virDomainCheckpointFinalize(GObject *obj) { - virDomainCheckpointPtr checkpoint =3D obj; + virDomainCheckpointPtr checkpoint =3D VIR_DOMAIN_CHECKPOINT(obj); VIR_DEBUG("release checkpoint %p %s", checkpoint, checkpoint->name); =20 VIR_FREE(checkpoint->name); virObjectUnref(checkpoint->domain); + + G_OBJECT_CLASS(vir_domain_checkpoint_parent_class)->finalize(obj); } =20 =20 diff --git a/src/datatypes.h b/src/datatypes.h index 4e9f338f8b..13ad044126 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -32,7 +32,6 @@ =20 extern virClassPtr virConnectClass; extern virClassPtr virDomainClass; -extern virClassPtr virDomainCheckpointClass; extern virClassPtr virDomainSnapshotClass; extern virClassPtr virInterfaceClass; extern virClassPtr virNetworkClass; @@ -45,6 +44,13 @@ extern virClassPtr virStreamClass; extern virClassPtr virStorageVolClass; extern virClassPtr virStoragePoolClass; =20 +#define VIR_TYPE_DOMAIN_CHECKPOINT vir_domain_checkpoint_get_type() +G_DECLARE_FINAL_TYPE(virDomainCheckpoint, + vir_domain_checkpoint, + VIR, + DOMAIN_CHECKPOINT, + GObject); + extern virClassPtr virAdmConnectClass; =20 #define VIR_TYPE_ADM_SERVER vir_adm_server_get_type() @@ -327,8 +333,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckDomainCheckpointReturn(obj, retval) \ do { \ - virDomainCheckpointPtr _check =3D (obj); \ - if (!virObjectIsClass(_check, virDomainCheckpointClass) || \ + virDomainCheckpointPtr _check =3D VIR_DOMAIN_CHECKPOINT(obj); \ + if (!G_IS_OBJECT(_check) || !(G_OBJECT_TYPE(_check) =3D=3D VIR_TYP= E_DOMAIN_CHECKPOINT) || \ !virObjectIsClass(_check->domain, virDomainClass) || \ !virObjectIsClass(_check->domain->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_DOMAIN_CHECKPOINT, \ @@ -749,7 +755,7 @@ struct _virStream { * Internal structure associated with a domain checkpoint */ struct _virDomainCheckpoint { - virObject parent; + GObject parent; char *name; virDomainPtr domain; }; diff --git a/src/libvirt-domain-checkpoint.c b/src/libvirt-domain-checkpoin= t.c index 432c2d5a52..77ef434d30 100644 --- a/src/libvirt-domain-checkpoint.c +++ b/src/libvirt-domain-checkpoint.c @@ -535,14 +535,13 @@ virDomainCheckpointDelete(virDomainCheckpointPtr chec= kpoint, int virDomainCheckpointRef(virDomainCheckpointPtr checkpoint) { - VIR_DEBUG("checkpoint=3D%p, refs=3D%d", checkpoint, - checkpoint ? checkpoint->parent.u.s.refs : 0); + VIR_DEBUG("checkpoint=3D%p", checkpoint); =20 virResetLastError(); =20 virCheckDomainCheckpointReturn(checkpoint, -1); =20 - virObjectRef(checkpoint); + g_object_ref(checkpoint); return 0; } =20 @@ -565,6 +564,6 @@ virDomainCheckpointFree(virDomainCheckpointPtr checkpoi= nt) =20 virCheckDomainCheckpointReturn(checkpoint, -1); =20 - virObjectUnref(checkpoint); + g_object_unref(checkpoint); return 0; } diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index e276f55bb1..008d4fa08f 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1349,7 +1349,6 @@ virConnectCloseCallbackDataClass; virConnectCloseCallbackDataGetCallback; virConnectCloseCallbackDataRegister; virConnectCloseCallbackDataUnregister; -virDomainCheckpointClass; virDomainClass; virDomainSnapshotClass; virGetConnect; --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1585927027; cv=none; d=zohomail.com; s=zohoarc; b=GBzTms+1ZgCEImLVwf+Kog/y/cfGFYJEoIaI0+lwZHn5Rg56/soZC4oSbnMll9G8+23yqHpEC5aqvuiv8/mxjGGAI5m6pk3cN2OxDGmxk45zNy064DAnDyRa+ZCUpnmHBqYVuI12h9O9eZBSmq9Atvg/wM9MdI0AV21aFWCC5N0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927027; 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=MxGR0ZhXMiwG5A36Wh6WInWRlncOeWrQ/tMfmZCHKE0=; b=C0VFaGTumb9PuSPvppCpI/UX6D5WYdc7laCoCUcJzGAi9238rMuv23PjrqEEXiHgkoU/mC/jwQ1cZPb2HnzYf+WUldAuwEjCZY5hUZ3V8Plp6258vQopS6XUVvEk7LkwNWSmqBg6SgZztCNUMHPUcDs0pP/MUyreSdD6xthDEtU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1585927027793542.2750940317633; Fri, 3 Apr 2020 08:17:07 -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-431-52pfa-DEPDSqJPx2LFmEvA-1; Fri, 03 Apr 2020 11:17:00 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 95B8B18C35D3; Fri, 3 Apr 2020 15:16:52 +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 1EE5B5C64E; Fri, 3 Apr 2020 15:16:52 +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 C14A51803C40; Fri, 3 Apr 2020 15:16:51 +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 033FGkhF028241 for ; Fri, 3 Apr 2020 11:16:46 -0400 Received: by smtp.corp.redhat.com (Postfix) id 685682093CC3; Fri, 3 Apr 2020 15:16:46 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 63A3F2028DCC for ; Fri, 3 Apr 2020 15:16:44 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (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 0668E8007D0 for ; Fri, 3 Apr 2020 15:16:44 +0000 (UTC) Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-120-1t3kAS35OQSORyXXhS60FQ-1; Fri, 03 Apr 2020 11:16:41 -0400 Received: by mail-wr1-f66.google.com with SMTP id t7so8924150wrw.12 for ; Fri, 03 Apr 2020 08:16:41 -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.16.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927026; 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=MxGR0ZhXMiwG5A36Wh6WInWRlncOeWrQ/tMfmZCHKE0=; b=DVoyWbavZCgxnQi0feAzHCBuUnTuIabmJ4SpMOOu2O51YoVblEsWR2LKaxqb7QcOH/ijjd 1duVQti5Hm6IS0Co55o/R9fLHGk5OvSxLkS09GwKqorG58SlaGwfRlbR++cMxmVIfXlB1u pMGvajIVMqecLarbAAQa+8p7OAMUWjg= X-MC-Unique: 52pfa-DEPDSqJPx2LFmEvA-1 X-MC-Unique: 1t3kAS35OQSORyXXhS60FQ-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=wEnJKFhO5wr76WcoOLHPsBhcbOVN62aVzdPc9Jp/mMk=; b=jEbCGLvGDhuKcObC8HYRUs0tbzpF/rXtE5hh7wQtJkxJfl3CPEInegcjr3Mzolt13D iZZfWqp7mpNidEQzRuabb0rFdP7A0ZTaLZ5TeGlq+rWazhPsNnDLAgBAHnSxsUIY0tHB PCJHQ4g7fktLtffP2fycvgN2ehErzyhHzxEDg9pXCruwLi1a7ztUXubJofQF+A97bADC ZvVEM+E8nFIlvqvbMVuqNHrQyasPATgJxo4Y8uXQZeZM1TzhxC9lERET0NjJ5V8NjK6G acVcNgar5OPa2OSZ9lu8xxV/9hfNMVHZgUdbSz8324E6btfyRcDyZvD9Tp/ENPbvOSZQ ithg== X-Gm-Message-State: AGi0PuYOumbJPfArVMANUqNwwyTuobaAS60ZalYIH/0W+MvPV642lgQN Z/XyLhfICwch5S48cfP+Dk/ha16jGIw= X-Google-Smtp-Source: APiQypIL2s1yZ455ceQZOhgGqet9MgTijnqcTv2VIgH+VmChb7/E3a0tf2efWNJbFPpFNhGnpDXszw== X-Received: by 2002:adf:aacc:: with SMTP id i12mr10175171wrc.116.1585926999661; Fri, 03 Apr 2020 08:16:39 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 16/36] datatypes: convert virDomainSnapshot to GObject Date: Fri, 3 Apr 2020 17:15:44 +0200 Message-Id: <20200403151604.106616-17-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.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGkhF028241 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.16 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/conf/virdomainsnapshotobjlist.c | 6 ++-- src/datatypes.c | 44 ++++++++++++++++++----------- src/datatypes.h | 13 +++++++-- src/libvirt-domain-snapshot.c | 7 ++--- src/libvirt_private.syms | 1 - src/qemu/qemu_driver.c | 3 +- 6 files changed, 45 insertions(+), 29 deletions(-) diff --git a/src/conf/virdomainsnapshotobjlist.c b/src/conf/virdomainsnapsh= otobjlist.c index 910b0714c7..7641aa98ff 100644 --- a/src/conf/virdomainsnapshotobjlist.c +++ b/src/conf/virdomainsnapshotobjlist.c @@ -286,8 +286,10 @@ virDomainListSnapshots(virDomainSnapshotObjListPtr sna= pshots, VIR_FREE(names[i]); VIR_FREE(names); if (ret < 0 && list) { - for (i =3D 0; i < count; i++) - virObjectUnref(list[i]); + for (i =3D 0; i < count; i++) { + if (list[i]) + g_object_unref(list[i]); + } VIR_FREE(list); } return ret; diff --git a/src/datatypes.c b/src/datatypes.c index 1e0861aa5f..fd39c96b31 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -36,7 +36,6 @@ VIR_LOG_INIT("datatypes"); virClassPtr virConnectClass; virClassPtr virConnectCloseCallbackDataClass; virClassPtr virDomainClass; -virClassPtr virDomainSnapshotClass; virClassPtr virInterfaceClass; virClassPtr virNetworkClass; virClassPtr virNetworkPortClass; @@ -51,7 +50,6 @@ virClassPtr virStoragePoolClass; static void virConnectDispose(void *obj); static void virConnectCloseCallbackDataDispose(void *obj); static void virDomainDispose(void *obj); -static void virDomainSnapshotDispose(void *obj); static void virInterfaceDispose(void *obj); static void virNetworkDispose(void *obj); static void virNetworkPortDispose(void *obj); @@ -79,6 +77,22 @@ vir_domain_checkpoint_class_init(virDomainCheckpointClas= s *klass) obj->finalize =3D virDomainCheckpointFinalize; } =20 +G_DEFINE_TYPE(virDomainSnapshot, vir_domain_snapshot, G_TYPE_OBJECT); +static void virDomainSnapshotFinalize(GObject *obj); + +static void +vir_domain_snapshot_init(virDomainSnapshot *ds G_GNUC_UNUSED) +{ +} + +static void +vir_domain_snapshot_class_init(virDomainSnapshotClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virDomainSnapshotFinalize; +} + virClassPtr virAdmConnectClass; virClassPtr virAdmConnectCloseCallbackDataClass; =20 @@ -131,7 +145,6 @@ virDataTypesOnceInit(void) DECLARE_CLASS_LOCKABLE(virConnect); DECLARE_CLASS_LOCKABLE(virConnectCloseCallbackData); DECLARE_CLASS(virDomain); - DECLARE_CLASS(virDomainSnapshot); DECLARE_CLASS(virInterface); DECLARE_CLASS(virNetwork); DECLARE_CLASS(virNetworkPort); @@ -1051,37 +1064,32 @@ virDomainCheckpointFinalize(GObject *obj) * @name: pointer to the domain snapshot name * * Allocates a new domain snapshot object. When the object is no longer ne= eded, - * virObjectUnref() must be called in order to not leak data. + * g_object_unref() must be called in order to not leak data. * * Returns a pointer to the domain snapshot object, or NULL on error. */ virDomainSnapshotPtr virGetDomainSnapshot(virDomainPtr domain, const char *name) { - virDomainSnapshotPtr ret =3D NULL; + g_autoptr(virDomainSnapshot) ret =3D NULL; =20 if (virDataTypesInitialize() < 0) return NULL; =20 - virCheckDomainGoto(domain, error); - virCheckNonNullArgGoto(name, error); + virCheckDomainReturn(domain, NULL); + virCheckNonNullArgReturn(name, NULL); =20 - if (!(ret =3D virObjectNew(virDomainSnapshotClass))) - goto error; + ret =3D VIR_DOMAIN_SNAPSHOT(g_object_new(VIR_TYPE_DOMAIN_SNAPSHOT, NUL= L)); ret->name =3D g_strdup(name); =20 ret->domain =3D virObjectRef(domain); =20 - return ret; - - error: - virObjectUnref(ret); - return NULL; + return g_steal_pointer(&ret); } =20 =20 /** - * virDomainSnapshotDispose: + * virDomainSnapshotFinalize: * @obj: the domain snapshot to release * * Unconditionally release all memory associated with a snapshot. @@ -1091,13 +1099,15 @@ virGetDomainSnapshot(virDomainPtr domain, const cha= r *name) * which may also be released if its ref count hits zero. */ static void -virDomainSnapshotDispose(void *obj) +virDomainSnapshotFinalize(GObject *obj) { - virDomainSnapshotPtr snapshot =3D obj; + virDomainSnapshotPtr snapshot =3D VIR_DOMAIN_SNAPSHOT(obj); VIR_DEBUG("release snapshot %p %s", snapshot, snapshot->name); =20 VIR_FREE(snapshot->name); virObjectUnref(snapshot->domain); + + G_OBJECT_CLASS(vir_domain_snapshot_parent_class)->finalize(obj); } =20 =20 diff --git a/src/datatypes.h b/src/datatypes.h index 13ad044126..296196523b 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -32,7 +32,6 @@ =20 extern virClassPtr virConnectClass; extern virClassPtr virDomainClass; -extern virClassPtr virDomainSnapshotClass; extern virClassPtr virInterfaceClass; extern virClassPtr virNetworkClass; extern virClassPtr virNetworkPortClass; @@ -44,6 +43,7 @@ extern virClassPtr virStreamClass; extern virClassPtr virStorageVolClass; extern virClassPtr virStoragePoolClass; =20 + #define VIR_TYPE_DOMAIN_CHECKPOINT vir_domain_checkpoint_get_type() G_DECLARE_FINAL_TYPE(virDomainCheckpoint, vir_domain_checkpoint, @@ -51,6 +51,13 @@ G_DECLARE_FINAL_TYPE(virDomainCheckpoint, DOMAIN_CHECKPOINT, GObject); =20 +#define VIR_TYPE_DOMAIN_SNAPSHOT vir_domain_snapshot_get_type() +G_DECLARE_FINAL_TYPE(virDomainSnapshot, + vir_domain_snapshot, + VIR, + DOMAIN_SNAPSHOT, + GObject); + extern virClassPtr virAdmConnectClass; =20 #define VIR_TYPE_ADM_SERVER vir_adm_server_get_type() @@ -349,7 +356,7 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); #define virCheckDomainSnapshotReturn(obj, retval) \ do { \ virDomainSnapshotPtr _snap =3D (obj); \ - if (!virObjectIsClass(_snap, virDomainSnapshotClass) || \ + if (!G_IS_OBJECT(_snap) || !(G_OBJECT_TYPE(_snap) =3D=3D VIR_TYPE_= DOMAIN_SNAPSHOT) || \ !virObjectIsClass(_snap->domain, virDomainClass) || \ !virObjectIsClass(_snap->domain->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_DOMAIN_SNAPSHOT, \ @@ -767,7 +774,7 @@ struct _virDomainCheckpoint { * Internal structure associated with a domain snapshot */ struct _virDomainSnapshot { - virObject parent; + GObject parent; char *name; virDomainPtr domain; }; diff --git a/src/libvirt-domain-snapshot.c b/src/libvirt-domain-snapshot.c index 33593e11e9..ce870de712 100644 --- a/src/libvirt-domain-snapshot.c +++ b/src/libvirt-domain-snapshot.c @@ -1080,14 +1080,13 @@ virDomainSnapshotDelete(virDomainSnapshotPtr snapsh= ot, int virDomainSnapshotRef(virDomainSnapshotPtr snapshot) { - VIR_DEBUG("snapshot=3D%p, refs=3D%d", snapshot, - snapshot ? snapshot->parent.u.s.refs : 0); + VIR_DEBUG("snapshot=3D%p", snapshot); =20 virResetLastError(); =20 virCheckDomainSnapshotReturn(snapshot, -1); =20 - virObjectRef(snapshot); + g_object_ref(snapshot); return 0; } =20 @@ -1110,6 +1109,6 @@ virDomainSnapshotFree(virDomainSnapshotPtr snapshot) =20 virCheckDomainSnapshotReturn(snapshot, -1); =20 - virObjectUnref(snapshot); + g_object_unref(snapshot); return 0; } diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 008d4fa08f..7528779127 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1350,7 +1350,6 @@ virConnectCloseCallbackDataGetCallback; virConnectCloseCallbackDataRegister; virConnectCloseCallbackDataUnregister; virDomainClass; -virDomainSnapshotClass; virGetConnect; virGetDomain; virGetDomainCheckpoint; diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 73f1037e8a..864158fd9d 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -15853,8 +15853,7 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain, cfg->snapshotDir) < 0) { /* if writing of metadata fails, error out rather than trying * to silently carry on without completing the snapshot */ - virObjectUnref(snapshot); - snapshot =3D NULL; + g_clear_object(&snapshot); virReportError(VIR_ERR_INTERNAL_ERROR, _("unable to save metadata for snapshot %s"), snap->def->name); --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1585927031; cv=none; d=zohomail.com; s=zohoarc; b=UXrd23jGGzWVGL6KkvNI+TgpEfgPVsAoyC0BU//t4nwJ9RR8cYk3gtve7FiKCnluc6uWA8SCSbg5LX+HuPhQrFQKKHGXMA7CeZ01B+qPrJSWNj97ofjtbJ73dwUeQ2ZOHfEuZySTUPGDN9bzRba9EtS7w1cfbsZKjtilzzZg5lc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927031; 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=NlRSyTkD1kcFgewD+0Y5oEcg2woCZAyBtdY5fsihZjw=; b=jTYJsM7GmVFOf+ZSk1SaBe0QC2N+wADz0AHmK7fBmcSEMC/5jS/KnscmkG7LJkHVrGUTLTSVdZggqwY8iX255E+6CfuJR7DLTrttadfdI7PvHP6bOMlNY/kjC8jgJPo0jNCay4MRJ8tbvIGhElQ9RFOTg15toNpA729a1EQSQxc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1585927031212428.86959439799057; Fri, 3 Apr 2020 08:17:11 -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-295-cZZa6ULzMMiJZjLxQdNaMg-1; Fri, 03 Apr 2020 11:17:07 -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 D33BC107ACC9; Fri, 3 Apr 2020 15:16:57 +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 A62E660BF3; Fri, 3 Apr 2020 15:16:57 +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 5E86018034E9; Fri, 3 Apr 2020 15:16:57 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FGjWi028231 for ; Fri, 3 Apr 2020 11:16:46 -0400 Received: by smtp.corp.redhat.com (Postfix) id DA4D1123CD57; Fri, 3 Apr 2020 15:16:45 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D6566123CD4F for ; Fri, 3 Apr 2020 15:16:45 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (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 BC843185A78E for ; Fri, 3 Apr 2020 15:16:45 +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-420-4j1hOJzLPMG6hxTLBrRZKg-1; Fri, 03 Apr 2020 11:16:43 -0400 Received: by mail-wr1-f50.google.com with SMTP id h15so8946655wrx.9 for ; Fri, 03 Apr 2020 08:16:42 -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.16.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927029; 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=NlRSyTkD1kcFgewD+0Y5oEcg2woCZAyBtdY5fsihZjw=; b=d1d1CLrpabi/DGhQP9hsppixJLRmozVBsQ0IYS5brVIWtcteloEd9rpirnkhX1jzetKJK9 zcxAGQ7BmzQbXRcjzMMfvbOckIJQWtVhXB2lJFRsYEEyt9G+tt1XeCZ4qHRK45ZhC0P93u hZ+4lFcHbgvkxBjR3Vg7z0VONPLfis8= X-MC-Unique: cZZa6ULzMMiJZjLxQdNaMg-1 X-MC-Unique: 4j1hOJzLPMG6hxTLBrRZKg-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=uvfr+RWC1EwJhDszf9qvvESSqgDhg9nKiAaZcOsM0m4=; b=dg7CXZLu3dozInJ+JR5RlJ+GgKy6/7UJ+MSoek12RWUsK/MlI3Pj7Hj7pyHdxbezhe rjx3MkTr2xSeMsj/zF54DyfpZcirUTNNdV13qgXcyArxKReiu7tSBXkaVoUh3ghSPBmb 1oHQNDN2SEVT72wnUYJI570zcUspUmGRnc+nM/7sx22miFnmOjC3yjpqXN8bhY2IzyTw cTAJ4cS5cf9FZtlnlWkWeHnfthxwh2lLc8s47fxua1v9VkgMEk6NagvCWT/lOixu4A9X banPe0T2GgQie93oM7ib8CFM1zn5n86qdiWEg3zuk/Xs9xa+ccD54ZRp6HByLjYBKQsQ D2ag== X-Gm-Message-State: AGi0PubHNVK+qMmVGdayrY0mwrtPvUDpeeaKEPgmMlDz+lLrnrbNwovl lXbge15Ki9Kd0haopqydsYptgJ6ubuo= X-Google-Smtp-Source: APiQypJmotrLN0nA6NH8FauE1PmpCz128CMYDy5aTcnXdfcwP1OTLO0kZXv34CkZy6lMlkFfSk1WJQ== X-Received: by 2002:a05:6000:370:: with SMTP id f16mr9948391wrf.9.1585927001365; Fri, 03 Apr 2020 08:16:41 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 17/36] datatypes: convert virNWFilter to GObject Date: Fri, 3 Apr 2020 17:15:45 +0200 Message-Id: <20200403151604.106616-18-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.78 on 10.11.54.3 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGjWi028231 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/conf/virnwfilterobj.c | 6 +++-- src/datatypes.c | 46 ++++++++++++++++++++++++--------------- src/datatypes.h | 10 +++++---- src/libvirt-nwfilter.c | 7 +++--- src/libvirt_private.syms | 1 - 5 files changed, 41 insertions(+), 29 deletions(-) diff --git a/src/conf/virnwfilterobj.c b/src/conf/virnwfilterobj.c index c9e224061d..6d89701199 100644 --- a/src/conf/virnwfilterobj.c +++ b/src/conf/virnwfilterobj.c @@ -473,8 +473,10 @@ virNWFilterObjListExport(virConnectPtr conn, =20 cleanup: if (tmp_filters) { - for (i =3D 0; i < nfilters; i ++) - virObjectUnref(tmp_filters[i]); + for (i =3D 0; i < nfilters; i ++) { + if (tmp_filters[i]) + g_object_unref(tmp_filters[i]); + } } VIR_FREE(tmp_filters); =20 diff --git a/src/datatypes.c b/src/datatypes.c index fd39c96b31..d4f60db2be 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -40,7 +40,6 @@ virClassPtr virInterfaceClass; virClassPtr virNetworkClass; virClassPtr virNetworkPortClass; virClassPtr virNodeDeviceClass; -virClassPtr virNWFilterClass; virClassPtr virNWFilterBindingClass; virClassPtr virSecretClass; virClassPtr virStreamClass; @@ -54,7 +53,6 @@ static void virInterfaceDispose(void *obj); static void virNetworkDispose(void *obj); static void virNetworkPortDispose(void *obj); static void virNodeDeviceDispose(void *obj); -static void virNWFilterDispose(void *obj); static void virNWFilterBindingDispose(void *obj); static void virSecretDispose(void *obj); static void virStreamDispose(void *obj); @@ -93,6 +91,22 @@ vir_domain_snapshot_class_init(virDomainSnapshotClass *k= lass) obj->finalize =3D virDomainSnapshotFinalize; } =20 +G_DEFINE_TYPE(virNWFilter, vir_nw_filter, G_TYPE_OBJECT); +static void virNWFilterFinalize(GObject *obj); + +static void +vir_nw_filter_init(virNWFilter *filter G_GNUC_UNUSED) +{ +} + +static void +vir_nw_filter_class_init(virNWFilterClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virNWFilterFinalize; +} + virClassPtr virAdmConnectClass; virClassPtr virAdmConnectCloseCallbackDataClass; =20 @@ -149,7 +163,6 @@ virDataTypesOnceInit(void) DECLARE_CLASS(virNetwork); DECLARE_CLASS(virNetworkPort); DECLARE_CLASS(virNodeDevice); - DECLARE_CLASS(virNWFilter); DECLARE_CLASS(virNWFilterBinding); DECLARE_CLASS(virSecret); DECLARE_CLASS(virStream); @@ -883,7 +896,7 @@ virStreamDispose(void *obj) * @uuid: pointer to the uuid * * Allocates a new network filter object. When the object is no longer nee= ded, - * virObjectUnref() must be called in order to not leak data. + * g_object_unref() must be called in order to not leak data. * * Returns a pointer to the network filter object, or NULL on error. */ @@ -891,17 +904,16 @@ virNWFilterPtr virGetNWFilter(virConnectPtr conn, const char *name, const unsigned char *uuid) { - virNWFilterPtr ret =3D NULL; + g_autoptr(virNWFilter) ret =3D NULL; =20 if (virDataTypesInitialize() < 0) return NULL; =20 - virCheckConnectGoto(conn, error); - virCheckNonNullArgGoto(name, error); - virCheckNonNullArgGoto(uuid, error); + virCheckConnectReturn(conn, NULL); + virCheckNonNullArgReturn(name, NULL); + virCheckNonNullArgReturn(uuid, NULL); =20 - if (!(ret =3D virObjectNew(virNWFilterClass))) - goto error; + ret =3D VIR_NW_FILTER(g_object_new(VIR_TYPE_NW_FILTER, NULL)); =20 ret->name =3D g_strdup(name); =20 @@ -909,16 +921,12 @@ virGetNWFilter(virConnectPtr conn, const char *name, =20 ret->conn =3D virObjectRef(conn); =20 - return ret; - - error: - virObjectUnref(ret); - return NULL; + return g_steal_pointer(&ret); } =20 =20 /** - * virNWFilterDispose: + * virNWFilterFinalize: * @obj: the network filter to release * * Unconditionally release all memory associated with a nwfilter. @@ -928,9 +936,9 @@ virGetNWFilter(virConnectPtr conn, const char *name, * which may also be released if its ref count hits zero. */ static void -virNWFilterDispose(void *obj) +virNWFilterFinalize(GObject *obj) { - virNWFilterPtr nwfilter =3D obj; + virNWFilterPtr nwfilter =3D VIR_NW_FILTER(obj); char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 virUUIDFormat(nwfilter->uuid, uuidstr); @@ -938,6 +946,8 @@ virNWFilterDispose(void *obj) =20 VIR_FREE(nwfilter->name); virObjectUnref(nwfilter->conn); + + G_OBJECT_CLASS(vir_nw_filter_parent_class)->finalize(obj); } =20 =20 diff --git a/src/datatypes.h b/src/datatypes.h index 296196523b..e8bd9bf1e5 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -36,7 +36,6 @@ extern virClassPtr virInterfaceClass; extern virClassPtr virNetworkClass; extern virClassPtr virNetworkPortClass; extern virClassPtr virNodeDeviceClass; -extern virClassPtr virNWFilterClass; extern virClassPtr virNWFilterBindingClass; extern virClassPtr virSecretClass; extern virClassPtr virStreamClass; @@ -58,6 +57,9 @@ G_DECLARE_FINAL_TYPE(virDomainSnapshot, DOMAIN_SNAPSHOT, GObject); =20 +#define VIR_TYPE_NW_FILTER vir_nw_filter_get_type() +G_DECLARE_FINAL_TYPE(virNWFilter, vir_nw_filter, VIR, NW_FILTER, GObject); + extern virClassPtr virAdmConnectClass; =20 #define VIR_TYPE_ADM_SERVER vir_adm_server_get_type() @@ -312,8 +314,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckNWFilterReturn(obj, retval) \ do { \ - virNWFilterPtr _nw =3D (obj); \ - if (!virObjectIsClass(_nw, virNWFilterClass) || \ + virNWFilterPtr _nw =3D VIR_NW_FILTER(obj); \ + if (!G_IS_OBJECT(_nw) || !(G_OBJECT_TYPE(_nw) =3D=3D VIR_TYPE_NW_F= ILTER) || \ !virObjectIsClass(_nw->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_NWFILTER, \ VIR_ERR_INVALID_NWFILTER, \ @@ -785,7 +787,7 @@ struct _virDomainSnapshot { * Internal structure associated to a network filter */ struct _virNWFilter { - virObject parent; + GObject parent; virConnectPtr conn; /* pointer back to the connection= */ char *name; /* the network filter external na= me */ unsigned char uuid[VIR_UUID_BUFLEN]; /* the network filter unique iden= tifier */ diff --git a/src/libvirt-nwfilter.c b/src/libvirt-nwfilter.c index d28220db8a..cd3f5759b7 100644 --- a/src/libvirt-nwfilter.c +++ b/src/libvirt-nwfilter.c @@ -281,7 +281,7 @@ virNWFilterFree(virNWFilterPtr nwfilter) =20 virCheckNWFilterReturn(nwfilter, -1); =20 - virObjectUnref(nwfilter); + g_object_unref(nwfilter); return 0; } =20 @@ -503,14 +503,13 @@ virNWFilterGetXMLDesc(virNWFilterPtr nwfilter, unsign= ed int flags) int virNWFilterRef(virNWFilterPtr nwfilter) { - VIR_DEBUG("nwfilter=3D%p refs=3D%d", nwfilter, - nwfilter ? nwfilter->parent.u.s.refs : 0); + VIR_DEBUG("nwfilter=3D%p", nwfilter); =20 virResetLastError(); =20 virCheckNWFilterReturn(nwfilter, -1); =20 - virObjectRef(nwfilter); + g_object_ref(nwfilter); return 0; } =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 7528779127..aff0688548 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1369,7 +1369,6 @@ virNetworkClass; virNetworkPortClass; virNewConnectCloseCallbackData; virNodeDeviceClass; -virNWFilterClass; virSecretClass; virStoragePoolClass; virStorageVolClass; --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1585927037; cv=none; d=zohomail.com; s=zohoarc; b=FGINxyViCAwlE1okge62zo8wWPU7+GBwUZYfmVX91EWO/HVxpQsh5HIeLM2kzmAQOS0LBsWnU/ZtH+gcnuNugjweZmrEGVxSHyIFbAU5tVhiYTQRXK8qrcMN4IZoRhwXcNId3jXhISc2jqTgBO/ZpDa0TlqlhCY1B/j4Yq3rl18= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927037; 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=6Qzr7QgBMVo5I5AT1MdI1g5M8fYXZ795Uj8oC0m4mbA=; b=ZP3y4pTk91A3LFC6IdFJyQAWoCyxD/n3EGryv9HOx7x0R61F/7w+uTgCEyB9i2jaPMluXdH2GXxsWeFysbPv+vOFPiUYbXzXcV2lWdDJcszfYlgRz0mep7Q0eojLKpgKLRQ4RIKl2VoLbUBhIAJ7ANsBi5SsFeDpKqtLrRddSl0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 158592703786289.17178906722233; Fri, 3 Apr 2020 08:17:17 -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-199-z4344ZrlO2q1UsPklxfGsQ-1; Fri, 03 Apr 2020 11:17:11 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 429411085932; Fri, 3 Apr 2020 15:17:03 +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 138C55DA2C; Fri, 3 Apr 2020 15:17:03 +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 B3C8A18034FA; Fri, 3 Apr 2020 15:17:02 +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 033FGlF9028250 for ; Fri, 3 Apr 2020 11:16:47 -0400 Received: by smtp.corp.redhat.com (Postfix) id 547FB13CCA2; Fri, 3 Apr 2020 15:16:47 +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 4F71113CCA8 for ; Fri, 3 Apr 2020 15:16:47 +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 314E780030D for ; Fri, 3 Apr 2020 15:16:47 +0000 (UTC) Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-45-ajRNskZwMUe7v_MfsEwujQ-1; Fri, 03 Apr 2020 11:16:45 -0400 Received: by mail-wm1-f41.google.com with SMTP id c195so2348536wme.1 for ; Fri, 03 Apr 2020 08:16:44 -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.16.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927036; 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=6Qzr7QgBMVo5I5AT1MdI1g5M8fYXZ795Uj8oC0m4mbA=; b=PYnR7GhEg3HQmqTvQUwxQtwJ8/euXMCL0Oh9YubFVvxWzv67bVGpRapyVNW1hQWrqYcLll IrqM2zPo09lfHJajaoj9Aq0tWUWKJuRGOP5qF+rEzX2gk/PpWF0fsCAJSrm8kr+xF9hX6m RFmMt912VwRSjPokRYEvhZxTI1ApgKE= X-MC-Unique: z4344ZrlO2q1UsPklxfGsQ-1 X-MC-Unique: ajRNskZwMUe7v_MfsEwujQ-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=bb+GG3wJnlrBNKNmUDs0YNpC4D6K6P2D8H7wiciNk7s=; b=eQUmT04G1BF6QF/TrXkhii+LbbEdLhHH9izuzhW6c90r7juT+MWd+EqZ85Q4koAcWb rUI6e/ZXT6Y5SR59w+n8QFCtYMJulVotSJrn6hgjuSw//xufVQ6QQZWisHVMc+Og24vV rtGztiPDpY6pOHbSOISls4/IJ/kFAgT54k/LLPiC5GI92PA8PSvEq/VnnOpubL9P50ZW +YvmKtNndNNWkp2rSSUeP+VTYRM8MRJKDPTv4EFGjqSgwEttHNQWIJoQprY9kb2UzPYi 2Q5TxO1zGLFE4YbSUphRaiE71pjw6TgkgXvyuFsDswKrljebKRmUXdqZYzHpQyYNueKR /9+A== X-Gm-Message-State: AGi0PuaQrqFhz/UgHRoZ07gr9YyqA3njZTiGavY9Xocz5tBzfaXhiwVQ fRX/S3dymUAjJpPYfSR4vif3Xpp2bJM= X-Google-Smtp-Source: APiQypKyIo22Fol9nNVmfYEcPszRDackzFC9FkBREuMN18PB7S1iGEhv/hnTjcQtnC2hxiuPZqFViw== X-Received: by 2002:a1c:7919:: with SMTP id l25mr9633521wme.12.1585927003129; Fri, 03 Apr 2020 08:16:43 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 18/36] datatypes: convert virNWFilterBinding to GObject Date: Fri, 3 Apr 2020 17:15:46 +0200 Message-Id: <20200403151604.106616-19-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 033FGlF9028250 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.14 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/conf/virnwfilterbindingobjlist.c | 6 +++- src/datatypes.c | 44 +++++++++++++++++----------- src/datatypes.h | 14 ++++++--- src/libvirt-nwfilter.c | 7 ++--- src/nwfilter/nwfilter_driver.c | 3 +- 5 files changed, 46 insertions(+), 28 deletions(-) diff --git a/src/conf/virnwfilterbindingobjlist.c b/src/conf/virnwfilterbin= dingobjlist.c index 97e4d3c49b..110403bfcc 100644 --- a/src/conf/virnwfilterbindingobjlist.c +++ b/src/conf/virnwfilterbindingobjlist.c @@ -489,7 +489,11 @@ virNWFilterBindingObjListExport(virNWFilterBindingObjL= istPtr bindings, cleanup: virObjectListFreeCount(bindingobjs, nbindings); if (ret < 0) { - virObjectListFreeCount(*bindinglist, nbindings); + for (i =3D 0; i < nbindings; i++) { + if ((*bindinglist)[i]) + g_object_unref((*bindinglist)[i]); + } + VIR_FREE(*bindinglist); *bindinglist =3D NULL; } return ret; diff --git a/src/datatypes.c b/src/datatypes.c index d4f60db2be..b9879cfb9e 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -40,7 +40,6 @@ virClassPtr virInterfaceClass; virClassPtr virNetworkClass; virClassPtr virNetworkPortClass; virClassPtr virNodeDeviceClass; -virClassPtr virNWFilterBindingClass; virClassPtr virSecretClass; virClassPtr virStreamClass; virClassPtr virStorageVolClass; @@ -53,7 +52,6 @@ static void virInterfaceDispose(void *obj); static void virNetworkDispose(void *obj); static void virNetworkPortDispose(void *obj); static void virNodeDeviceDispose(void *obj); -static void virNWFilterBindingDispose(void *obj); static void virSecretDispose(void *obj); static void virStreamDispose(void *obj); static void virStorageVolDispose(void *obj); @@ -107,6 +105,22 @@ vir_nw_filter_class_init(virNWFilterClass *klass) obj->finalize =3D virNWFilterFinalize; } =20 +G_DEFINE_TYPE(virNWFilterBinding, vir_nw_filter_binding, G_TYPE_OBJECT); +static void virNWFilterBindingFinalize(GObject *obj); + +static void +vir_nw_filter_binding_init(virNWFilterBinding *bdg G_GNUC_UNUSED) +{ +} + +static void +vir_nw_filter_binding_class_init(virNWFilterBindingClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virNWFilterBindingFinalize; +} + virClassPtr virAdmConnectClass; virClassPtr virAdmConnectCloseCallbackDataClass; =20 @@ -163,7 +177,6 @@ virDataTypesOnceInit(void) DECLARE_CLASS(virNetwork); DECLARE_CLASS(virNetworkPort); DECLARE_CLASS(virNodeDevice); - DECLARE_CLASS(virNWFilterBinding); DECLARE_CLASS(virSecret); DECLARE_CLASS(virStream); DECLARE_CLASS(virStorageVol); @@ -958,7 +971,7 @@ virNWFilterFinalize(GObject *obj) * @filtername: name of the network filter * * Allocates a new network filter binding object. When the object is no lo= nger - * needed, virObjectUnref() must be called in order to not leak data. + * needed, g_object_unref() must be called in order to not leak data. * * Returns a pointer to the network filter binding object, or NULL on erro= r. */ @@ -966,16 +979,15 @@ virNWFilterBindingPtr virGetNWFilterBinding(virConnectPtr conn, const char *portdev, const char *filtername) { - virNWFilterBindingPtr ret =3D NULL; + g_autoptr(virNWFilterBinding) ret =3D NULL; =20 if (virDataTypesInitialize() < 0) return NULL; =20 - virCheckConnectGoto(conn, error); - virCheckNonNullArgGoto(portdev, error); + virCheckConnectReturn(conn, NULL); + virCheckNonNullArgReturn(portdev, NULL); =20 - if (!(ret =3D virObjectNew(virNWFilterBindingClass))) - goto error; + ret =3D VIR_NW_FILTER_BINDING(g_object_new(VIR_TYPE_NW_FILTER_BINDING,= NULL)); =20 ret->portdev =3D g_strdup(portdev); =20 @@ -983,16 +995,12 @@ virGetNWFilterBinding(virConnectPtr conn, const char = *portdev, =20 ret->conn =3D virObjectRef(conn); =20 - return ret; - - error: - virObjectUnref(ret); - return NULL; + return g_steal_pointer(&ret); } =20 =20 /** - * virNWFilterBindingDispose: + * virNWFilterBindingFinalize: * @obj: the network filter binding to release * * Unconditionally release all memory associated with a nwfilter binding. @@ -1002,15 +1010,17 @@ virGetNWFilterBinding(virConnectPtr conn, const cha= r *portdev, * which may also be released if its ref count hits zero. */ static void -virNWFilterBindingDispose(void *obj) +virNWFilterBindingFinalize(GObject *obj) { - virNWFilterBindingPtr binding =3D obj; + virNWFilterBindingPtr binding =3D VIR_NW_FILTER_BINDING(obj); =20 VIR_DEBUG("release binding %p %s", binding, binding->portdev); =20 VIR_FREE(binding->portdev); VIR_FREE(binding->filtername); virObjectUnref(binding->conn); + + G_OBJECT_CLASS(vir_nw_filter_binding_parent_class)->finalize(obj); } =20 =20 diff --git a/src/datatypes.h b/src/datatypes.h index e8bd9bf1e5..87c6a1366e 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -36,7 +36,6 @@ extern virClassPtr virInterfaceClass; extern virClassPtr virNetworkClass; extern virClassPtr virNetworkPortClass; extern virClassPtr virNodeDeviceClass; -extern virClassPtr virNWFilterBindingClass; extern virClassPtr virSecretClass; extern virClassPtr virStreamClass; extern virClassPtr virStorageVolClass; @@ -50,6 +49,13 @@ G_DECLARE_FINAL_TYPE(virDomainCheckpoint, DOMAIN_CHECKPOINT, GObject); =20 +#define VIR_TYPE_NW_FILTER_BINDING vir_nw_filter_binding_get_type() +G_DECLARE_FINAL_TYPE(virNWFilterBinding, + vir_nw_filter_binding, + VIR, + NW_FILTER_BINDING, + GObject); + #define VIR_TYPE_DOMAIN_SNAPSHOT vir_domain_snapshot_get_type() G_DECLARE_FINAL_TYPE(virDomainSnapshot, vir_domain_snapshot, @@ -328,8 +334,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckNWFilterBindingReturn(obj, retval) \ do { \ - virNWFilterBindingPtr _nw =3D (obj); \ - if (!virObjectIsClass(_nw, virNWFilterBindingClass) || \ + virNWFilterBindingPtr _nw =3D VIR_NW_FILTER_BINDING(obj); \ + if (!G_IS_OBJECT(_nw) || !(G_OBJECT_TYPE(_nw) =3D=3D VIR_TYPE_NW_F= ILTER_BINDING) || \ !virObjectIsClass(_nw->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_NWFILTER, \ VIR_ERR_INVALID_NWFILTER_BINDING, \ @@ -800,7 +806,7 @@ struct _virNWFilter { * Internal structure associated to a network filter port binding */ struct _virNWFilterBinding { - virObject parent; + GObject parent; virConnectPtr conn; /* pointer back to the connection= */ char *portdev; /* the network filter port device= name */ char *filtername; /* the network filter name */ diff --git a/src/libvirt-nwfilter.c b/src/libvirt-nwfilter.c index cd3f5759b7..ac34d1fea0 100644 --- a/src/libvirt-nwfilter.c +++ b/src/libvirt-nwfilter.c @@ -621,7 +621,7 @@ virNWFilterBindingFree(virNWFilterBindingPtr binding) =20 virCheckNWFilterBindingReturn(binding, -1); =20 - virObjectUnref(binding); + g_object_unref(binding); return 0; } =20 @@ -819,13 +819,12 @@ virNWFilterBindingGetXMLDesc(virNWFilterBindingPtr bi= nding, unsigned int flags) int virNWFilterBindingRef(virNWFilterBindingPtr binding) { - VIR_DEBUG("binding=3D%p refs=3D%d", binding, - binding ? binding->parent.u.s.refs : 0); + VIR_DEBUG("binding=3D%p", binding); =20 virResetLastError(); =20 virCheckNWFilterBindingReturn(binding, -1); =20 - virObjectRef(binding); + g_object_ref(binding); return 0; } diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index 1c407727db..cbf396342e 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -785,8 +785,7 @@ nwfilterBindingCreateXML(virConnectPtr conn, =20 if (virNWFilterInstantiateFilter(driver, def) < 0) { virNWFilterBindingObjListRemove(driver->bindings, obj); - virObjectUnref(ret); - ret =3D NULL; + g_clear_object(&ret); goto cleanup; } virNWFilterBindingObjSave(obj, driver->bindingDir); --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927030; cv=none; d=zohomail.com; s=zohoarc; b=isEPTFcGZnv8tBgRUwHCmAxomTVKZr3h28mjw29WbRXK8QUNxJSE8p7J7D8BEEygTJcyyFzEXuOttsIyq/tvthrfckM880Y409fZCys/wmHjHfshWGOfK/D3Vr7l7LR+OGZdYzJnu+iIeyJRywt4XUj/jhxrd80AveSLs/6lWoY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927030; 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=P91mAPh4eMbmnofPemQOy/AyZkgeZOFXD04r03tfuUQ=; b=ea73SnaTrooM/9ym2yZUJZhvRZPMx3MBR1sXganCi9BUfx6a+8AJ5V6cBJEc7bL42rkP2uTv1vjTYe1gp5yREMlo/eENcIQmDcq/Pi6cTInxmqSXij970XRKvYbXxoRsuoAFdcYjh6BHH+kmJHrQkugbSAmAlGDWqpw5yibz85g= 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 1585927030192883.0298803963416; Fri, 3 Apr 2020 08:17:10 -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-398-qnZTS9adO8K1FP7FyYhRJQ-1; Fri, 03 Apr 2020 11:17:02 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1179C18C35B5; Fri, 3 Apr 2020 15:16:56 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D323F26DEE; Fri, 3 Apr 2020 15:16:55 +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 8D3E44E45C; Fri, 3 Apr 2020 15:16:55 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FGq9M028290 for ; Fri, 3 Apr 2020 11:16:52 -0400 Received: by smtp.corp.redhat.com (Postfix) id 6A0102166B30; Fri, 3 Apr 2020 15:16:52 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 661F12166B2C for ; Fri, 3 Apr 2020 15:16:49 +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 62AEB8007A4 for ; Fri, 3 Apr 2020 15:16:49 +0000 (UTC) Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-385-3u4IWFF6OeaU8Y9n4MySqw-1; Fri, 03 Apr 2020 11:16:46 -0400 Received: by mail-wr1-f49.google.com with SMTP id h9so8971136wrc.8 for ; Fri, 03 Apr 2020 08:16:46 -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.16.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927028; 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=P91mAPh4eMbmnofPemQOy/AyZkgeZOFXD04r03tfuUQ=; b=ByKtZyX5AAGT4Bo1qacByfI0r1kgUzkXeho0XGyYO1DP/+nyB/FzICpXfoiOEY/TqoCt7u Sbpaux2/LknzTsy0AmQzWMuEhuS8jIWxyg5Mi5THPj9lYlSszSthW3bhjg6HckOGeJQic7 mWJkPdJmZO2OJs+UUIDm6Q2z7AtKdfU= X-MC-Unique: qnZTS9adO8K1FP7FyYhRJQ-1 X-MC-Unique: 3u4IWFF6OeaU8Y9n4MySqw-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=idU6FBLFQZGwboysPDxAcTBq2YpqH5e+RLEn4w3VM6U=; b=qDfo+2ZRxkMC4B+h0Y3EgmTlq4mkkTLrQBI5BCkXWHwRgFyz2bOhQeX4gr3HLoqta/ 4/KXYfW7gwgUfnrmZ4K5ym4ECAZJitvCjpFQ+l8eCxje7wG+Pp6IiQe//OaVQROfWWpo /ffucrNINlea8oG5ASAXDMnP72NxtgJuOzA05slf1zHixMKcoiv8SzSElaRFpSDcDxDM wop2b3DhbXHZBJnhYiv6SQWnkX4byjVT/izez5W3L4ma9IPf8ld1Uugpl4599YInUHlc ZQRZXgRlf+ChW6XbHXP8a+libNkkBnUe+7i9LXINeb55glQ+aNX7yVxCJMu9rLSr4AAo 1mgQ== X-Gm-Message-State: AGi0PuYpYRz1QTl6fxNVHoWXlqH1W0bouKs1mwBqcRZYEqZsVMnfMZf0 PXt30admchNfO2IsjnN+H6yA16+sQZU= X-Google-Smtp-Source: APiQypJJIEoQi2JFr9+bjm+BVcD/u+ehy3NGbUPGcn4Ms1DdzQDv7ZKJPhSkmaceSxeI4KHIKqKeng== X-Received: by 2002:a5d:540c:: with SMTP id g12mr10115952wrv.178.1585927004543; Fri, 03 Apr 2020 08:16:44 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 19/36] datatypes: convert virNetwork to GObject Date: Fri, 3 Apr 2020 17:15:47 +0200 Message-Id: <20200403151604.106616-20-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.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGq9M028290 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.23 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/conf/domain_conf.c | 6 ++-- src/conf/network_event.c | 2 +- src/conf/virnetworkobj.c | 7 ++-- src/datatypes.c | 50 +++++++++++++++++------------ src/datatypes.h | 33 ++++++++++--------- src/libvirt-network.c | 7 ++-- src/libvirt_private.syms | 1 - src/libxl/libxl_conf.c | 3 +- src/libxl/xen_common.c | 2 +- src/remote/remote_daemon_dispatch.c | 6 ++-- src/remote/remote_driver.c | 4 +-- 11 files changed, 64 insertions(+), 57 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index a29e6681a5..772d9ae0a8 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -31540,7 +31540,7 @@ virDomainNetReleaseActualDevice(virConnectPtr conn, virDomainDefPtr dom G_GNUC_UNUSED, virDomainNetDefPtr iface) { - virNetworkPtr net =3D NULL; + g_autoptr(virNetwork) net =3D NULL; virNetworkPortPtr port =3D NULL; int ret =3D -1; =20 @@ -31561,7 +31561,6 @@ virDomainNetReleaseActualDevice(virConnectPtr conn, =20 cleanup: virObjectUnref(port); - virObjectUnref(net); return ret; } =20 @@ -31614,7 +31613,7 @@ int virDomainNetBandwidthUpdate(virDomainNetDefPtr iface, virNetDevBandwidthPtr newBandwidth) { - virNetworkPtr net =3D NULL; + g_autoptr(virNetwork) net =3D NULL; virNetworkPortPtr port =3D NULL; virTypedParameterPtr params =3D NULL; int nparams =3D 0; @@ -31641,7 +31640,6 @@ virDomainNetBandwidthUpdate(virDomainNetDefPtr ifac= e, virObjectUnref(conn); virTypedParamsFree(params, nparams); virObjectUnref(port); - virObjectUnref(net); return ret; } =20 diff --git a/src/conf/network_event.c b/src/conf/network_event.c index 41cabe340a..5a8f138dfd 100644 --- a/src/conf/network_event.c +++ b/src/conf/network_event.c @@ -111,7 +111,7 @@ virNetworkEventDispatchDefaultFunc(virConnectPtr conn, VIR_WARN("Unexpected event ID %d", event->eventID); =20 cleanup: - virObjectUnref(net); + g_object_unref(net); } =20 =20 diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index b2affaacd3..762c9d9159 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -1429,9 +1429,10 @@ virNetworkObjListExport(virConnectPtr conn, ret =3D data.nnets; cleanup: virObjectRWUnlock(netobjs); - while (data.nets && data.nnets) - virObjectUnref(data.nets[--data.nnets]); - + while (data.nets && data.nnets) { + if (data.nets[--data.nnets]) + g_object_unref(data.nets[data.nnets]); + } VIR_FREE(data.nets); return ret; } diff --git a/src/datatypes.c b/src/datatypes.c index b9879cfb9e..15130ca0fa 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -37,7 +37,6 @@ virClassPtr virConnectClass; virClassPtr virConnectCloseCallbackDataClass; virClassPtr virDomainClass; virClassPtr virInterfaceClass; -virClassPtr virNetworkClass; virClassPtr virNetworkPortClass; virClassPtr virNodeDeviceClass; virClassPtr virSecretClass; @@ -49,7 +48,6 @@ static void virConnectDispose(void *obj); static void virConnectCloseCallbackDataDispose(void *obj); static void virDomainDispose(void *obj); static void virInterfaceDispose(void *obj); -static void virNetworkDispose(void *obj); static void virNetworkPortDispose(void *obj); static void virNodeDeviceDispose(void *obj); static void virSecretDispose(void *obj); @@ -89,6 +87,22 @@ vir_domain_snapshot_class_init(virDomainSnapshotClass *k= lass) obj->finalize =3D virDomainSnapshotFinalize; } =20 +G_DEFINE_TYPE(virNetwork, vir_network, G_TYPE_OBJECT); +static void virNetworkFinalize(GObject *obj); + +static void +vir_network_init(virNetwork *net G_GNUC_UNUSED) +{ +} + +static void +vir_network_class_init(virNetworkClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virNetworkFinalize; +} + G_DEFINE_TYPE(virNWFilter, vir_nw_filter, G_TYPE_OBJECT); static void virNWFilterFinalize(GObject *obj); =20 @@ -174,7 +188,6 @@ virDataTypesOnceInit(void) DECLARE_CLASS_LOCKABLE(virConnectCloseCallbackData); DECLARE_CLASS(virDomain); DECLARE_CLASS(virInterface); - DECLARE_CLASS(virNetwork); DECLARE_CLASS(virNetworkPort); DECLARE_CLASS(virNodeDevice); DECLARE_CLASS(virSecret); @@ -411,39 +424,34 @@ virDomainDispose(void *obj) * @uuid: pointer to the uuid * * Allocates a new network object. When the object is no longer needed, - * virObjectUnref() must be called in order to not leak data. + * g_object_unref() must be called in order to not leak data. * * Returns a pointer to the network object, or NULL on error. */ virNetworkPtr virGetNetwork(virConnectPtr conn, const char *name, const unsigned char *u= uid) { - virNetworkPtr ret =3D NULL; + g_autoptr(virNetwork) ret =3D NULL; =20 if (virDataTypesInitialize() < 0) return NULL; =20 - virCheckConnectGoto(conn, error); - virCheckNonNullArgGoto(name, error); - virCheckNonNullArgGoto(uuid, error); + virCheckConnectReturn(conn, NULL); + virCheckNonNullArgReturn(name, NULL); + virCheckNonNullArgReturn(uuid, NULL); =20 - if (!(ret =3D virObjectNew(virNetworkClass))) - goto error; + ret =3D VIR_NETWORK(g_object_new(VIR_TYPE_NETWORK, NULL)); =20 ret->name =3D g_strdup(name); =20 ret->conn =3D virObjectRef(conn); memcpy(&(ret->uuid[0]), uuid, VIR_UUID_BUFLEN); =20 - return ret; - - error: - virObjectUnref(ret); - return NULL; + return g_steal_pointer(&ret); } =20 /** - * virNetworkDispose: + * virNetworkFinalize: * @obj: the network to release * * Unconditionally release all memory associated with a network. @@ -453,9 +461,9 @@ virGetNetwork(virConnectPtr conn, const char *name, con= st unsigned char *uuid) * which may also be released if its ref count hits zero. */ static void -virNetworkDispose(void *obj) +virNetworkFinalize(GObject *obj) { - virNetworkPtr network =3D obj; + virNetworkPtr network =3D VIR_NETWORK(obj); char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 virUUIDFormat(network->uuid, uuidstr); @@ -463,6 +471,8 @@ virNetworkDispose(void *obj) =20 VIR_FREE(network->name); virObjectUnref(network->conn); + + G_OBJECT_CLASS(vir_network_parent_class)->finalize(obj); } =20 =20 @@ -490,7 +500,7 @@ virGetNetworkPort(virNetworkPtr net, const unsigned cha= r *uuid) if (!(ret =3D virObjectNew(virNetworkPortClass))) goto error; =20 - ret->net =3D virObjectRef(net); + ret->net =3D g_object_ref(net); memcpy(&(ret->uuid[0]), uuid, VIR_UUID_BUFLEN); =20 return ret; @@ -519,7 +529,7 @@ virNetworkPortDispose(void *obj) virUUIDFormat(port->uuid, uuidstr); VIR_DEBUG("release network port %p %s", port, uuidstr); =20 - virObjectUnref(port->net); + g_object_unref(port->net); } =20 =20 diff --git a/src/datatypes.h b/src/datatypes.h index 87c6a1366e..e91a6c71f4 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -33,7 +33,6 @@ extern virClassPtr virConnectClass; extern virClassPtr virDomainClass; extern virClassPtr virInterfaceClass; -extern virClassPtr virNetworkClass; extern virClassPtr virNetworkPortClass; extern virClassPtr virNodeDeviceClass; extern virClassPtr virSecretClass; @@ -49,13 +48,6 @@ G_DECLARE_FINAL_TYPE(virDomainCheckpoint, DOMAIN_CHECKPOINT, GObject); =20 -#define VIR_TYPE_NW_FILTER_BINDING vir_nw_filter_binding_get_type() -G_DECLARE_FINAL_TYPE(virNWFilterBinding, - vir_nw_filter_binding, - VIR, - NW_FILTER_BINDING, - GObject); - #define VIR_TYPE_DOMAIN_SNAPSHOT vir_domain_snapshot_get_type() G_DECLARE_FINAL_TYPE(virDomainSnapshot, vir_domain_snapshot, @@ -63,9 +55,19 @@ G_DECLARE_FINAL_TYPE(virDomainSnapshot, DOMAIN_SNAPSHOT, GObject); =20 +#define VIR_TYPE_NETWORK vir_network_get_type() +G_DECLARE_FINAL_TYPE(virNetwork, vir_network, VIR, NETWORK, GObject); + #define VIR_TYPE_NW_FILTER vir_nw_filter_get_type() G_DECLARE_FINAL_TYPE(virNWFilter, vir_nw_filter, VIR, NW_FILTER, GObject); =20 +#define VIR_TYPE_NW_FILTER_BINDING vir_nw_filter_binding_get_type() +G_DECLARE_FINAL_TYPE(virNWFilterBinding, + vir_nw_filter_binding, + VIR, + NW_FILTER_BINDING, + GObject); + extern virClassPtr virAdmConnectClass; =20 #define VIR_TYPE_ADM_SERVER vir_adm_server_get_type() @@ -119,8 +121,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckNetworkReturn(obj, retval) \ do { \ - virNetworkPtr _net =3D (obj); \ - if (!virObjectIsClass(_net, virNetworkClass) || \ + virNetworkPtr _net =3D VIR_NETWORK(obj); \ + if (!G_IS_OBJECT(_net) || !(G_OBJECT_TYPE(_net) =3D=3D VIR_TYPE_NE= TWORK) || \ !virObjectIsClass(_net->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_NETWORK, \ VIR_ERR_INVALID_NETWORK, \ @@ -132,8 +134,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); } while (0) #define virCheckNetworkGoto(obj, label) \ do { \ - virNetworkPtr _net =3D (obj); \ - if (!virObjectIsClass(_net, virNetworkClass) || \ + virNetworkPtr _net =3D VIR_NETWORK(obj); \ + if (!G_IS_OBJECT(_net) || !(G_OBJECT_TYPE(_net) =3D=3D VIR_TYPE_NE= TWORK) || \ !virObjectIsClass(_net->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_NETWORK, \ VIR_ERR_INVALID_NETWORK, \ @@ -147,7 +149,7 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); do { \ virNetworkPortPtr _port =3D (obj); \ if (!virObjectIsClass(_port, virNetworkPortClass) || \ - !virObjectIsClass(_port->net, virNetworkClass)) { \ + !G_IS_OBJECT(_port->net) || !(G_OBJECT_TYPE(_port->net) =3D=3D= VIR_TYPE_NETWORK)) { \ virReportErrorHelper(VIR_FROM_NETWORK, \ VIR_ERR_INVALID_NETWORK_PORT, \ __FILE__, __FUNCTION__, __LINE__, \ @@ -161,7 +163,7 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); do { \ virNetworkPortPtr _port =3D (obj); \ if (!virObjectIsClass(_port, virNetworkPortClass) || \ - !virObjectIsClass(_port->net, virNetworkClass)) { \ + !G_IS_OBJECT(_port->net) || !(G_OBJECT_TYPE(_port->net) =3D=3D= VIR_TYPE_NETWORK)) { \ virReportErrorHelper(VIR_FROM_NETWORK, \ VIR_ERR_INVALID_NETWORK_PORT, \ __FILE__, __FUNCTION__, __LINE__, \ @@ -639,13 +641,12 @@ struct _virDomain { * Internal structure associated to a network */ struct _virNetwork { - virObject parent; + GObject parent; virConnectPtr conn; /* pointer back to the connection= */ char *name; /* the network external name */ unsigned char uuid[VIR_UUID_BUFLEN]; /* the network unique identifier = */ }; =20 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(virNetwork, virObjectUnref); =20 =20 /** diff --git a/src/libvirt-network.c b/src/libvirt-network.c index 09e24fb0a8..3847617d4d 100644 --- a/src/libvirt-network.c +++ b/src/libvirt-network.c @@ -654,7 +654,7 @@ virNetworkFree(virNetworkPtr network) =20 virCheckNetworkReturn(network, -1); =20 - virObjectUnref(network); + g_object_unref(network); return 0; } =20 @@ -679,14 +679,13 @@ virNetworkFree(virNetworkPtr network) int virNetworkRef(virNetworkPtr network) { - VIR_DEBUG("network=3D%p refs=3D%d", network, - network ? network->parent.u.s.refs : 0); + VIR_DEBUG("network=3D%p", network); =20 virResetLastError(); =20 virCheckNetworkReturn(network, -1); =20 - virObjectRef(network); + g_object_ref(network); return 0; } =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index aff0688548..8293a5e88d 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1365,7 +1365,6 @@ virGetStoragePool; virGetStorageVol; virGetStream; virInterfaceClass; -virNetworkClass; virNetworkPortClass; virNewConnectCloseCallbackData; virNodeDeviceClass; diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index 21089c33d7..d9377438d9 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -1198,7 +1198,7 @@ libxlMakeNic(virDomainDefPtr def, bool attach) { virDomainNetType actual_type =3D virDomainNetGetActualType(l_nic); - virNetworkPtr network =3D NULL; + g_autoptr(virNetwork) network =3D NULL; virConnectPtr conn =3D NULL; const virNetDevBandwidth *actual_bw; const virNetDevVPortProfile *port_profile; @@ -1397,7 +1397,6 @@ libxlMakeNic(virDomainDefPtr def, =20 cleanup: virBufferFreeAndReset(&buf); - virObjectUnref(network); virObjectUnref(conn); =20 return ret; diff --git a/src/libxl/xen_common.c b/src/libxl/xen_common.c index 9a385eba0d..94863245fe 100644 --- a/src/libxl/xen_common.c +++ b/src/libxl/xen_common.c @@ -1717,7 +1717,7 @@ xenFormatNet(virConnectPtr conn, return -1; } bridge =3D virNetworkGetBridgeName(network); - virObjectUnref(network); + g_object_unref(network); if (!bridge) { virReportError(VIR_ERR_INTERNAL_ERROR, _("network %s is not active"), diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon= _dispatch.c index c024211ea5..ee6bbb24d0 100644 --- a/src/remote/remote_daemon_dispatch.c +++ b/src/remote/remote_daemon_dispatch.c @@ -6075,7 +6075,7 @@ remoteDispatchConnectNetworkEventRegisterAny(virNetSe= rverPtr server G_GNUC_UNUSE remoteEventCallbackFree(callback); if (rv < 0) virNetMessageSaveError(rerr); - virObjectUnref(net); + g_object_unref(net); return rv; } =20 @@ -6807,7 +6807,7 @@ remoteDispatchNetworkGetDHCPLeases(virNetServerPtr se= rver G_GNUC_UNUSED, for (i =3D 0; i < nleases; i++) virNetworkDHCPLeaseFree(leases[i]); VIR_FREE(leases); - virObjectUnref(net); + g_object_unref(net); return rv; } =20 @@ -7234,7 +7234,7 @@ get_nonnull_network_port(virConnectPtr conn, remote_n= onnull_network_port port) if (!net) return NULL; ret =3D virGetNetworkPort(net, BAD_CAST port.uuid); - virObjectUnref(net); + g_object_unref(net); return ret; } =20 diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 5051c583d7..f19061200c 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -5471,7 +5471,7 @@ remoteNetworkBuildEventLifecycle(virNetClientProgramP= tr prog G_GNUC_UNUSED, =20 event =3D virNetworkEventLifecycleNew(net->name, net->uuid, msg->event, msg->detail); - virObjectUnref(net); + g_object_unref(net); =20 virObjectEventStateQueueRemote(priv->eventState, event, msg->callbackI= D); } @@ -8281,7 +8281,7 @@ get_nonnull_network_port(virConnectPtr conn, remote_n= onnull_network_port port) if (!net) return NULL; ret =3D virGetNetworkPort(net, BAD_CAST port.uuid); - virObjectUnref(net); + g_object_unref(net); return ret; } =20 --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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=1585927035; cv=none; d=zohomail.com; s=zohoarc; b=To9R+j1rvT+BQAGpK51gGSlQKEb7M35XHzarb0pmOTWB7kIIPo6WEcKinm1jvB/J/i02p463D+te3EIR32R6E9srN+ahi6aGWoaRfc9s2MBRP34beS4q4XXX22VfZEIndt13wOcsDFF/cmL7lpHpunT6wy9ITIFYTpBBraK3gw4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927035; 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=4V/rQpLR6jgjcUAu9KzCdkOe2rEriO4CVWUmdbpHNMg=; b=a7Q1CNW/8sUuUDWMEbA/0cSl7EVF8A0WR9I0epe8YutovwuK5qR8W/Wz9lM+T6ioyMea0m95hq29OSw0ewy+70yFnOovUok0RzPBoZBdoyN7VsaSFJvou90REpNDdhFG+FVsF+Aq6ObtsBdd9Kz9l7Krs/hpj5Vwcq8DirEzVf0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1585927035510219.48112049530891; Fri, 3 Apr 2020 08:17:15 -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-60-X6S3hDksPGON9-BP_ir0MA-1; Fri, 03 Apr 2020 11:17:10 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B47A6100728C; Fri, 3 Apr 2020 15:17:01 +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 8A79F26DD1; Fri, 3 Apr 2020 15:17:01 +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 4149518034EF; Fri, 3 Apr 2020 15:17:01 +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 033FGoHt028275 for ; Fri, 3 Apr 2020 11:16:50 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0442813CCA0; Fri, 3 Apr 2020 15:16:50 +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 0048513CCA7 for ; Fri, 3 Apr 2020 15:16:49 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (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 D6B348FF672 for ; Fri, 3 Apr 2020 15:16:49 +0000 (UTC) Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-454-y1k3ddQwMiGYg4Rwv9ujlw-1; Fri, 03 Apr 2020 11:16:47 -0400 Received: by mail-wr1-f65.google.com with SMTP id a25so9024254wrd.0 for ; Fri, 03 Apr 2020 08:16:47 -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.16.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927033; 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=4V/rQpLR6jgjcUAu9KzCdkOe2rEriO4CVWUmdbpHNMg=; b=SOgisQOvYxK1EB4LWA0/MSVM2RlJS0CF1vpllj9ISSdb94wah3hWyWvYHGI2FXGfrM31tR 2rK/+gt3nZ003MiJe/Wk19KLqtkRYoO+36Zm+KNsYbXtfKfHUhqvW4iva6+KvgiNs8wDre 1IDuOmv/Nv+ynIvjBExfq/41+HiW5O4= X-MC-Unique: X6S3hDksPGON9-BP_ir0MA-1 X-MC-Unique: y1k3ddQwMiGYg4Rwv9ujlw-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=0t4z8daUMPPSo1CJX7alRtdpdTvRxlFg9bfQZiirark=; b=Zu1qI6rRDp8IL5GzlaI91ldPuNK5Mt8wJfaYX667XRGmQyXmfnOoChjFke198ltB0X hxidu9AFHjX/YVeBxkq/SGPR9j2sAnBoaxHtGlvqmXEH//REsjyfUILz5n3IvSJLO37I qbySFhphhi0zuIRLO+uW+ya5q5AGx3UvXKJRHeJ/mWOuEbtJklnV81aE1oCJv9yksHCH PUG6FfiIt4OPwgpunC3rBnVW1LClyobOuNg5xEhkRplebLOg2mBx2IfxdAZs6NwAURpO uFBL7Gb2dWyJ1loNkViCRcE5Vo922+aQt0lYEPezkop8A6HxPvSXHaMX0gIUrbN8b7rC iypA== X-Gm-Message-State: AGi0Puage+NAIECOh75/ruzCswOSxoQeH1X9GoHXXrl7bds+Lf7dCd2C N81MmsVtF0Jjavj1F51MTlRkntt0iWo= X-Google-Smtp-Source: APiQypLkpHWMCh4zZ9Y6Q5SnAtKPDe5xhBc6pzwPCTd7yOb/88zQJehQBTPkwZ1ERd5xmTpkLdnoJA== X-Received: by 2002:adf:b60d:: with SMTP id f13mr10173038wre.12.1585927005838; Fri, 03 Apr 2020 08:16:45 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 20/36] datatypes: convert virNetworkPort to GObject Date: Fri, 3 Apr 2020 17:15:48 +0200 Message-Id: <20200403151604.106616-21-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 033FGoHt028275 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.23 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/conf/domain_conf.c | 6 ++--- src/conf/virnetworkobj.c | 7 +++--- src/datatypes.c | 37 +++++++++++++++++++---------- src/datatypes.h | 15 ++++++------ src/libvirt-network.c | 7 +++--- src/libvirt_private.syms | 1 - src/remote/remote_daemon_dispatch.c | 2 +- 7 files changed, 43 insertions(+), 32 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 772d9ae0a8..f3a8a36eb2 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -31541,7 +31541,7 @@ virDomainNetReleaseActualDevice(virConnectPtr conn, virDomainNetDefPtr iface) { g_autoptr(virNetwork) net =3D NULL; - virNetworkPortPtr port =3D NULL; + g_autoptr(virNetworkPort) port =3D NULL; int ret =3D -1; =20 /* Port might not exist if a failure occurred during VM startup */ @@ -31560,7 +31560,6 @@ virDomainNetReleaseActualDevice(virConnectPtr conn, goto cleanup; =20 cleanup: - virObjectUnref(port); return ret; } =20 @@ -31614,7 +31613,7 @@ virDomainNetBandwidthUpdate(virDomainNetDefPtr ifac= e, virNetDevBandwidthPtr newBandwidth) { g_autoptr(virNetwork) net =3D NULL; - virNetworkPortPtr port =3D NULL; + g_autoptr(virNetworkPort) port =3D NULL; virTypedParameterPtr params =3D NULL; int nparams =3D 0; virConnectPtr conn =3D NULL; @@ -31639,7 +31638,6 @@ virDomainNetBandwidthUpdate(virDomainNetDefPtr ifac= e, cleanup: virObjectUnref(conn); virTypedParamsFree(params, nparams); - virObjectUnref(port); return ret; } =20 diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 762c9d9159..fba2587fd8 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -1825,9 +1825,10 @@ virNetworkObjPortListExport(virNetworkPtr net, =20 ret =3D data.nports; cleanup: - while (data.ports && data.nports) - virObjectUnref(data.ports[--data.nports]); - + while (data.ports && data.nports) { + if (data.ports[--data.nports]) + g_object_unref(data.ports[data.nports]); + } VIR_FREE(data.ports); return ret; } diff --git a/src/datatypes.c b/src/datatypes.c index 15130ca0fa..e715c37306 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -37,7 +37,6 @@ virClassPtr virConnectClass; virClassPtr virConnectCloseCallbackDataClass; virClassPtr virDomainClass; virClassPtr virInterfaceClass; -virClassPtr virNetworkPortClass; virClassPtr virNodeDeviceClass; virClassPtr virSecretClass; virClassPtr virStreamClass; @@ -48,7 +47,6 @@ static void virConnectDispose(void *obj); static void virConnectCloseCallbackDataDispose(void *obj); static void virDomainDispose(void *obj); static void virInterfaceDispose(void *obj); -static void virNetworkPortDispose(void *obj); static void virNodeDeviceDispose(void *obj); static void virSecretDispose(void *obj); static void virStreamDispose(void *obj); @@ -103,6 +101,22 @@ vir_network_class_init(virNetworkClass *klass) obj->finalize =3D virNetworkFinalize; } =20 +G_DEFINE_TYPE(virNetworkPort, vir_network_port, G_TYPE_OBJECT); +static void virNetworkPortFinalize(GObject *obj); + +static void +vir_network_port_init(virNetworkPort *np G_GNUC_UNUSED) +{ +} + +static void +vir_network_port_class_init(virNetworkPortClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virNetworkPortFinalize; +} + G_DEFINE_TYPE(virNWFilter, vir_nw_filter, G_TYPE_OBJECT); static void virNWFilterFinalize(GObject *obj); =20 @@ -188,7 +202,6 @@ virDataTypesOnceInit(void) DECLARE_CLASS_LOCKABLE(virConnectCloseCallbackData); DECLARE_CLASS(virDomain); DECLARE_CLASS(virInterface); - DECLARE_CLASS(virNetworkPort); DECLARE_CLASS(virNodeDevice); DECLARE_CLASS(virSecret); DECLARE_CLASS(virStream); @@ -482,14 +495,14 @@ virNetworkFinalize(GObject *obj) * @uuid: pointer to the uuid * * Allocates a new network port object. When the object is no longer neede= d, - * virObjectUnref() must be called in order to not leak data. + * g_object_unref() must be called in order to not leak data. * * Returns a pointer to the network port object, or NULL on error. */ virNetworkPortPtr virGetNetworkPort(virNetworkPtr net, const unsigned char *uuid) { - virNetworkPortPtr ret =3D NULL; + g_autoptr(virNetworkPort) ret =3D NULL; =20 if (virDataTypesInitialize() < 0) return NULL; @@ -497,21 +510,19 @@ virGetNetworkPort(virNetworkPtr net, const unsigned c= har *uuid) virCheckNetworkGoto(net, error); virCheckNonNullArgGoto(uuid, error); =20 - if (!(ret =3D virObjectNew(virNetworkPortClass))) - goto error; + ret =3D VIR_NETWORK_PORT(g_object_new(VIR_TYPE_NETWORK_PORT, NULL)); =20 ret->net =3D g_object_ref(net); memcpy(&(ret->uuid[0]), uuid, VIR_UUID_BUFLEN); =20 - return ret; + return g_steal_pointer(&ret); =20 error: - virObjectUnref(ret); return NULL; } =20 /** - * virNetworkPortDispose: + * virNetworkPortFinalize: * @obj: the network port to release * * Unconditionally release all memory associated with a network port. @@ -521,15 +532,17 @@ virGetNetworkPort(virNetworkPtr net, const unsigned c= har *uuid) * which may also be released if its ref count hits zero. */ static void -virNetworkPortDispose(void *obj) +virNetworkPortFinalize(GObject *obj) { - virNetworkPortPtr port =3D obj; + virNetworkPortPtr port =3D VIR_NETWORK_PORT(obj); char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 virUUIDFormat(port->uuid, uuidstr); VIR_DEBUG("release network port %p %s", port, uuidstr); =20 g_object_unref(port->net); + + G_OBJECT_CLASS(vir_network_port_parent_class)->finalize(obj); } =20 =20 diff --git a/src/datatypes.h b/src/datatypes.h index e91a6c71f4..a544a7a347 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -33,7 +33,6 @@ extern virClassPtr virConnectClass; extern virClassPtr virDomainClass; extern virClassPtr virInterfaceClass; -extern virClassPtr virNetworkPortClass; extern virClassPtr virNodeDeviceClass; extern virClassPtr virSecretClass; extern virClassPtr virStreamClass; @@ -58,6 +57,9 @@ G_DECLARE_FINAL_TYPE(virDomainSnapshot, #define VIR_TYPE_NETWORK vir_network_get_type() G_DECLARE_FINAL_TYPE(virNetwork, vir_network, VIR, NETWORK, GObject); =20 +#define VIR_TYPE_NETWORK_PORT vir_network_port_get_type() +G_DECLARE_FINAL_TYPE(virNetworkPort, vir_network_port, VIR, NETWORK_PORT, = GObject); + #define VIR_TYPE_NW_FILTER vir_nw_filter_get_type() G_DECLARE_FINAL_TYPE(virNWFilter, vir_nw_filter, VIR, NW_FILTER, GObject); =20 @@ -147,8 +149,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckNetworkPortReturn(obj, retval) \ do { \ - virNetworkPortPtr _port =3D (obj); \ - if (!virObjectIsClass(_port, virNetworkPortClass) || \ + virNetworkPortPtr _port =3D VIR_NETWORK_PORT(obj); \ + if (!G_IS_OBJECT(_port) || !(G_OBJECT_TYPE(_port) =3D=3D VIR_TYPE_= NETWORK_PORT) || \ !G_IS_OBJECT(_port->net) || !(G_OBJECT_TYPE(_port->net) =3D=3D= VIR_TYPE_NETWORK)) { \ virReportErrorHelper(VIR_FROM_NETWORK, \ VIR_ERR_INVALID_NETWORK_PORT, \ @@ -161,8 +163,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckNetworkPortGoto(obj, label) \ do { \ - virNetworkPortPtr _port =3D (obj); \ - if (!virObjectIsClass(_port, virNetworkPortClass) || \ + virNetworkPortPtr _port =3D VIR_NETWORK_PORT(obj); \ + if (!G_IS_OBJECT(_port) || !(G_OBJECT_TYPE(_port) =3D=3D VIR_TYPE_= NETWORK_PORT) || \ !G_IS_OBJECT(_port->net) || !(G_OBJECT_TYPE(_port->net) =3D=3D= VIR_TYPE_NETWORK)) { \ virReportErrorHelper(VIR_FROM_NETWORK, \ VIR_ERR_INVALID_NETWORK_PORT, \ @@ -655,12 +657,11 @@ struct _virNetwork { * Internal structure associated to a network port */ struct _virNetworkPort { - virObject parent; + GObject parent; virNetworkPtr net; /* pointer back to the connection= */ unsigned char uuid[VIR_UUID_BUFLEN]; /* the network unique identifier = */ }; =20 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(virNetworkPort, virObjectUnref); =20 =20 /** diff --git a/src/libvirt-network.c b/src/libvirt-network.c index 3847617d4d..1ab499fb18 100644 --- a/src/libvirt-network.c +++ b/src/libvirt-network.c @@ -1688,7 +1688,7 @@ virNetworkPortFree(virNetworkPortPtr port) =20 virCheckNetworkPortReturn(port, -1); =20 - virObjectUnref(port); + g_object_unref(port); return 0; } =20 @@ -1713,13 +1713,12 @@ virNetworkPortFree(virNetworkPortPtr port) int virNetworkPortRef(virNetworkPortPtr port) { - VIR_DEBUG("port=3D%p refs=3D%d", port, - port ? port->parent.u.s.refs : 0); + VIR_DEBUG("port=3D%p", port); =20 virResetLastError(); =20 virCheckNetworkPortReturn(port, -1); =20 - virObjectRef(port); + g_object_ref(port); return 0; } diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 8293a5e88d..9530b7a254 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1365,7 +1365,6 @@ virGetStoragePool; virGetStorageVol; virGetStream; virInterfaceClass; -virNetworkPortClass; virNewConnectCloseCallbackData; virNodeDeviceClass; virSecretClass; diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon= _dispatch.c index ee6bbb24d0..9f5aee07cd 100644 --- a/src/remote/remote_daemon_dispatch.c +++ b/src/remote/remote_daemon_dispatch.c @@ -7199,7 +7199,7 @@ remoteDispatchNetworkPortGetParameters(virNetServerPt= r server G_GNUC_UNUSED, cleanup: if (rv < 0) virNetMessageSaveError(rerr); - virObjectUnref(port); + g_object_unref(port); virTypedParamsFree(params, nparams); return rv; } --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927043; cv=none; d=zohomail.com; s=zohoarc; b=V+5q+X1Oo7PFRpDH5BuuE9JQYKaV5TSgw1ehkJgQG7gv0mWMj6zpdGeViIZwci6Q0r866jbZ8i+uVUOckPGZyn8uZJF2zYON7tzcNO/PzXXgZq/d2exTucrLaFCm5vM2Addw/uVpcwlrMRzBogzkR30ARfUCayFA2ybHcZgiTpM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927043; 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=Vk+7afz3xkVCFkAtcz7exY6nVY1c9E4GdU9OuubUInk=; b=jn3eiKsuvhqRFypsG3Uefju0znuiBai3Wm7cFr9tqe9W21OZLY3b0aW75U+nVmjJH1ScjGyyagrX3IfzXJzi+ZxuJFOYk/zBB4I3RC3hTOySw0EobeSabi82O5J78QOEpSiSfoaTldcftJSeepiUmretSim5dcXdGyFZiWZ3ARc= 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 1585927043460781.9362814688332; Fri, 3 Apr 2020 08:17:23 -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-370-Dmx7vomDNYmGzO0hxQ6ugA-1; Fri, 03 Apr 2020 11:17:19 -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 76FB6801E66; Fri, 3 Apr 2020 15:17:11 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4617E10002CD; 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 D9B184E47E; Fri, 3 Apr 2020 15:17:10 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FH41e028394 for ; Fri, 3 Apr 2020 11:17:04 -0400 Received: by smtp.corp.redhat.com (Postfix) id 209FA123CD57; Fri, 3 Apr 2020 15:17:04 +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 1C5B1123CD4F for ; Fri, 3 Apr 2020 15:17:04 +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 F216F80030D for ; Fri, 3 Apr 2020 15:17:03 +0000 (UTC) Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-325-JyreekyuMAeU2lc8V8wFyg-1; Fri, 03 Apr 2020 11:16:49 -0400 Received: by mail-wr1-f67.google.com with SMTP id h15so8947006wrx.9 for ; Fri, 03 Apr 2020 08:16:48 -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.16.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:46 -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=Vk+7afz3xkVCFkAtcz7exY6nVY1c9E4GdU9OuubUInk=; b=QBN58nwNPW/60KKOJj2KYYsIIL/Ts9cDKFMnxKd6+r8+75stp8+IsDdpA6fKjKmG6btQyf Jp6mEpQolQcaVHJJj0Rnv3NfCja4eMQDGyKSXR7ySyTBXJQRP/7ISy4DUna28cRBdkt/Pz gxbLHaDgW0vOFIKf3Spj/Qk4Knl1K0w= X-MC-Unique: Dmx7vomDNYmGzO0hxQ6ugA-1 X-MC-Unique: JyreekyuMAeU2lc8V8wFyg-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=sjgD3ynoG5Bh10NAtKtPFmk3gAgKY3iYGPekl3t2PdE=; b=Qp+AOCqGC8Qjyd/HvrPYq0JM7+nK1NzIvLXGW1tBXLBNOv+I+t+GsY3Rec1TgmVGqJ pZSVnLzg/7m28KBRysbS6g8BlRjT/S/eoteUmgjAFGUQsf877K6oRTEPT6NaiXN3LjVZ aTqRogBi7Yp90aHRung7b0LPnsMznpLgiub+r8VSRJYQQW+Y1tlZ4Eqw0RK04T/cFrxa 2PRzHOobAJnE1+V3NEMxwBGUb/BKpHAY/0LQAQFlKQ6mxwASFMU63TAC8RzoB1edTI/1 CGvtTed94XToXjk/SfYEcHSe04vbr4Kd7n9WcVX9BURg7PHXpLeB+Hbx95UQeEr3rAxW ajNA== X-Gm-Message-State: AGi0PubxXUEMwi9b11TUZdB0uCHi40531e6pM4k8rVyz5AIiegWLzsLN I9EkfxR5onGNLXBFdlDM9kONuNByeTQ= X-Google-Smtp-Source: APiQypKaTerJ9cwflEJsNONzAvxEi7gzCLUbwIcBoQ/3zqKmY87iYgO41765gILIi/kQnLF3CxloVw== X-Received: by 2002:a05:6000:a:: with SMTP id h10mr10137404wrx.226.1585927007342; Fri, 03 Apr 2020 08:16:47 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 21/36] datatypes: convert virInterface to GObject Date: Fri, 3 Apr 2020 17:15:49 +0200 Message-Id: <20200403151604.106616-22-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.78 on 10.11.54.3 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FH41e028394 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/conf/virinterfaceobj.c | 7 ++-- src/datatypes.c | 44 +++++++++++++++---------- src/datatypes.h | 10 +++--- src/interface/interface_backend_netcf.c | 2 +- src/interface/interface_backend_udev.c | 2 +- src/libvirt-interface.c | 6 ++-- src/libvirt_private.syms | 1 - 7 files changed, 42 insertions(+), 30 deletions(-) diff --git a/src/conf/virinterfaceobj.c b/src/conf/virinterfaceobj.c index 43ba395d2b..da6c56862b 100644 --- a/src/conf/virinterfaceobj.c +++ b/src/conf/virinterfaceobj.c @@ -338,9 +338,10 @@ virInterfaceObjListExport(virConnectPtr conn, ret =3D data.nifaces; cleanup: virObjectRWUnlock(ifaceobjs); - while (data.ifaces && data.nifaces) - virObjectUnref(data.ifaces[--data.nifaces]); - + while (data.ifaces && data.nifaces) { + if (data.ifaces[--data.nifaces]) + g_object_unref(data.ifaces[data.nifaces]); + } VIR_FREE(data.ifaces); return ret; } diff --git a/src/datatypes.c b/src/datatypes.c index e715c37306..f1bcca44f1 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -36,7 +36,6 @@ VIR_LOG_INIT("datatypes"); virClassPtr virConnectClass; virClassPtr virConnectCloseCallbackDataClass; virClassPtr virDomainClass; -virClassPtr virInterfaceClass; virClassPtr virNodeDeviceClass; virClassPtr virSecretClass; virClassPtr virStreamClass; @@ -46,7 +45,6 @@ virClassPtr virStoragePoolClass; static void virConnectDispose(void *obj); static void virConnectCloseCallbackDataDispose(void *obj); static void virDomainDispose(void *obj); -static void virInterfaceDispose(void *obj); static void virNodeDeviceDispose(void *obj); static void virSecretDispose(void *obj); static void virStreamDispose(void *obj); @@ -85,6 +83,22 @@ vir_domain_snapshot_class_init(virDomainSnapshotClass *k= lass) obj->finalize =3D virDomainSnapshotFinalize; } =20 +G_DEFINE_TYPE(virInterface, vir_interface, G_TYPE_OBJECT); +static void virInterfaceFinalize(GObject *obj); + +static void +vir_interface_init(virInterface *iface G_GNUC_UNUSED) +{ +} + +static void +vir_interface_class_init(virInterfaceClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virInterfaceFinalize; +} + G_DEFINE_TYPE(virNetwork, vir_network, G_TYPE_OBJECT); static void virNetworkFinalize(GObject *obj); =20 @@ -201,7 +215,6 @@ virDataTypesOnceInit(void) DECLARE_CLASS_LOCKABLE(virConnect); DECLARE_CLASS_LOCKABLE(virConnectCloseCallbackData); DECLARE_CLASS(virDomain); - DECLARE_CLASS(virInterface); DECLARE_CLASS(virNodeDevice); DECLARE_CLASS(virSecret); DECLARE_CLASS(virStream); @@ -553,42 +566,37 @@ virNetworkPortFinalize(GObject *obj) * @mac: pointer to the mac * * Allocates a new interface object. When the object is no longer needed, - * virObjectUnref() must be called in order to not leak data. + * g_object_unref() must be called in order to not leak data. * * Returns a pointer to the interface object, or NULL on error. */ virInterfacePtr virGetInterface(virConnectPtr conn, const char *name, const char *mac) { - virInterfacePtr ret =3D NULL; + g_autoptr(virInterface) ret =3D NULL; =20 if (virDataTypesInitialize() < 0) return NULL; =20 - virCheckConnectGoto(conn, error); - virCheckNonNullArgGoto(name, error); + virCheckConnectReturn(conn, NULL); + virCheckNonNullArgReturn(name, NULL); =20 /* a NULL mac from caller is okay. Treat it as blank */ if (mac =3D=3D NULL) mac =3D ""; =20 - if (!(ret =3D virObjectNew(virInterfaceClass))) - goto error; + ret =3D VIR_INTERFACE(g_object_new(VIR_TYPE_INTERFACE, NULL)); =20 ret->name =3D g_strdup(name); ret->mac =3D g_strdup(mac); =20 ret->conn =3D virObjectRef(conn); =20 - return ret; - - error: - virObjectUnref(ret); - return NULL; + return g_steal_pointer(&ret); } =20 /** - * virInterfaceDispose: + * virInterfaceFinalize: * @obj: the interface to release * * Unconditionally release all memory associated with an interface. @@ -598,14 +606,16 @@ virGetInterface(virConnectPtr conn, const char *name,= const char *mac) * which may also be released if its ref count hits zero. */ static void -virInterfaceDispose(void *obj) +virInterfaceFinalize(GObject *obj) { - virInterfacePtr iface =3D obj; + virInterfacePtr iface =3D VIR_INTERFACE(obj); VIR_DEBUG("release interface %p %s", iface, iface->name); =20 VIR_FREE(iface->name); VIR_FREE(iface->mac); virObjectUnref(iface->conn); + + G_OBJECT_CLASS(vir_interface_parent_class)->finalize(obj); } =20 =20 diff --git a/src/datatypes.h b/src/datatypes.h index a544a7a347..c68a0e9265 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -32,7 +32,6 @@ =20 extern virClassPtr virConnectClass; extern virClassPtr virDomainClass; -extern virClassPtr virInterfaceClass; extern virClassPtr virNodeDeviceClass; extern virClassPtr virSecretClass; extern virClassPtr virStreamClass; @@ -54,6 +53,9 @@ G_DECLARE_FINAL_TYPE(virDomainSnapshot, DOMAIN_SNAPSHOT, GObject); =20 +#define VIR_TYPE_INTERFACE vir_interface_get_type() +G_DECLARE_FINAL_TYPE(virInterface, vir_interface, VIR, INTERFACE, GObject); + #define VIR_TYPE_NETWORK vir_network_get_type() G_DECLARE_FINAL_TYPE(virNetwork, vir_network, VIR, NETWORK, GObject); =20 @@ -176,8 +178,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckInterfaceReturn(obj, retval) \ do { \ - virInterfacePtr _iface =3D (obj); \ - if (!virObjectIsClass(_iface, virInterfaceClass) || \ + virInterfacePtr _iface =3D VIR_INTERFACE(obj); \ + if (!G_IS_OBJECT(_iface) || !(G_OBJECT_TYPE(_iface) =3D=3D VIR_TYP= E_INTERFACE) || \ !virObjectIsClass(_iface->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_INTERFACE, \ VIR_ERR_INVALID_INTERFACE, \ @@ -670,7 +672,7 @@ struct _virNetworkPort { * Internal structure associated to a physical host interface */ struct _virInterface { - virObject parent; + GObject parent; virConnectPtr conn; /* pointer back to the connection= */ char *name; /* the network external name */ char *mac; /* the interface MAC address */ diff --git a/src/interface/interface_backend_netcf.c b/src/interface/interf= ace_backend_netcf.c index dd0c1481d9..dbf21088fd 100644 --- a/src/interface/interface_backend_netcf.c +++ b/src/interface/interface_backend_netcf.c @@ -740,7 +740,7 @@ netcfConnectListAllInterfaces(virConnectPtr conn, =20 if (tmp_iface_objs) { for (i =3D 0; i < niface_objs; i++) - virObjectUnref(tmp_iface_objs[i]); + g_object_unref(tmp_iface_objs[i]); VIR_FREE(tmp_iface_objs); } =20 diff --git a/src/interface/interface_backend_udev.c b/src/interface/interfa= ce_backend_udev.c index e388f98536..6fc9ca840e 100644 --- a/src/interface/interface_backend_udev.c +++ b/src/interface/interface_backend_udev.c @@ -421,7 +421,7 @@ udevConnectListAllInterfaces(virConnectPtr conn, =20 if (ifaces) { for (tmp_count =3D 0; tmp_count < count; tmp_count++) - virObjectUnref(ifaces_list[tmp_count]); + g_object_unref(ifaces_list[tmp_count]); } =20 VIR_FREE(ifaces_list); diff --git a/src/libvirt-interface.c b/src/libvirt-interface.c index 2d2df68131..0fd0ce7154 100644 --- a/src/libvirt-interface.c +++ b/src/libvirt-interface.c @@ -642,13 +642,13 @@ virInterfaceDestroy(virInterfacePtr iface, unsigned i= nt flags) int virInterfaceRef(virInterfacePtr iface) { - VIR_DEBUG("iface=3D%p refs=3D%d", iface, iface ? iface->parent.u.s.ref= s : 0); + VIR_DEBUG("iface=3D%p", iface); =20 virResetLastError(); =20 virCheckInterfaceReturn(iface, -1); =20 - virObjectRef(iface); + g_object_ref(iface); return 0; } =20 @@ -671,7 +671,7 @@ virInterfaceFree(virInterfacePtr iface) =20 virCheckInterfaceReturn(iface, -1); =20 - virObjectUnref(iface); + g_object_unref(iface); return 0; } =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 9530b7a254..a5e4b00a0e 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1364,7 +1364,6 @@ virGetSecret; virGetStoragePool; virGetStorageVol; virGetStream; -virInterfaceClass; virNewConnectCloseCallbackData; virNodeDeviceClass; virSecretClass; --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1585927038; cv=none; d=zohomail.com; s=zohoarc; b=IoRE+B+K1mYIfNR/g600PMPj+1faGtbbgrTlOvlyzssUYeZ5BQzYfeedvOX4oAgkRFQDs7VO7o+Alc41HUXU51qLgEaq0XMNFWSzk6ZFE/D/STQpKvJj+ScavFR04IPKGvz3ylKPR5YI+u0Au56vBQoU7QjspPCl7AQLpJxk6Uc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927038; 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=EhRvX/2G+j7ZaAy9SIV6pXnXYP6LFRDbViwLYuPGk/c=; b=BufhFjbtkQXMq1G2p19gyLVWBEpacY/nfNDnxIol4uuR9v3bUsWTiKJwCfYFUdpVOMt98hZPRbIIpvSsBoAOjW28oSFNSpxxoJDdoeBPiKvc+onsLaBWs/B3/jJWhGVE0N6GJuJsCjlDJ5bkgLXdFo+/FVDdSVra8zT1QdBRK2w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1585927038803654.1923997737912; Fri, 3 Apr 2020 08:17:18 -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-105-qxzo0eW_P5iyZBWxGnQjyQ-1; Fri, 03 Apr 2020 11:17:15 -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 17A7518C35BD; Fri, 3 Apr 2020 15:17:07 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C60FB1036D13; Fri, 3 Apr 2020 15:17:06 +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 1D9E34E45F; Fri, 3 Apr 2020 15:17:06 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FGr04028296 for ; Fri, 3 Apr 2020 11:16:53 -0400 Received: by smtp.corp.redhat.com (Postfix) id 12C442166B2E; Fri, 3 Apr 2020 15:16:53 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0F02B2166B2C for ; Fri, 3 Apr 2020 15:16:53 +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 E42B68007AC for ; Fri, 3 Apr 2020 15:16:52 +0000 (UTC) Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-377-EDZQbtaKM_-GIJLZvNwmKQ-1; Fri, 03 Apr 2020 11:16:50 -0400 Received: by mail-wr1-f42.google.com with SMTP id t7so8924745wrw.12 for ; Fri, 03 Apr 2020 08:16:50 -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.16.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927037; 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=EhRvX/2G+j7ZaAy9SIV6pXnXYP6LFRDbViwLYuPGk/c=; b=S5vQacDsyW8GOa/0O0w5HibrOZJZ290esRmne8DV4jfF6B+S0zcPuic3gVnVLOkdCaMeaU Xvmqi/in1QHP/nTylN2wT4TLN83RigplFes3hv5fw440ObgAc9L+pj3sksTzMmxY5IBowr Ks0eKNLCWXdDOnDe5vwP1AtGIdxujDs= X-MC-Unique: qxzo0eW_P5iyZBWxGnQjyQ-1 X-MC-Unique: EDZQbtaKM_-GIJLZvNwmKQ-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=5Ww84VSZO0XgYXafTNnTyvKT1Oa7bAs772XA4YaM2FM=; b=n324xoswmZFLrCP/rq6NaIqYAPt/LJ0hyHJOWzaGrf2d9dQZhMG88e4rMbbNSRYLl7 +CDqFdDcXNoIL6l9OfVFApmP4Qt6xYaPjp+66Ntim1/GoK2u9c7+3EL96vyV3AAL4n+E xcqR63XOHcFZCsO+0zYbdV3/R+5Ttwis38mK3KHrS4JmQMQsH9itq/BSsPH/AdKS7BnB tejGW4Ne0ev7uF/AFIkEm4DGt+SYmeXY2Ykas+hbbWb6XCfsQbucOfvH/tva/p+4vLWA yHuEFvoxY0FS01O5ELum8Nv3e/y56253QvGqIN/KMydc/TYHdzYqx8y3hTMQ7hYr2tge qVzw== X-Gm-Message-State: AGi0PuYuIVdz7qNLszvsWEoBtQEaeArkCgrUYqRqeiYMrXhv0lWCCoTN s/cuflBV3Sil+Ff9o2Ki/RVcnJmgBho= X-Google-Smtp-Source: APiQypLvSys20oh6IDPDtglXw31zciHkRnjcLf8amjGnPTzpI7xsxRrKuc5knOJabL17eD5FL5i5jA== X-Received: by 2002:a5d:4bc1:: with SMTP id l1mr10262237wrt.103.1585927008785; Fri, 03 Apr 2020 08:16:48 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 22/36] datatypes: convert virStoragePool to GObject Date: Fri, 3 Apr 2020 17:15:50 +0200 Message-Id: <20200403151604.106616-23-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.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGr04028296 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/conf/storage_event.c | 15 ++++------ src/conf/virstorageobj.c | 8 ++++- src/datatypes.c | 46 ++++++++++++++++++----------- src/datatypes.h | 15 +++++----- src/libvirt-storage.c | 6 ++-- src/libvirt_private.syms | 1 - src/qemu/qemu_migration.c | 3 +- src/remote/remote_daemon_dispatch.c | 2 +- src/remote/remote_driver.c | 4 +-- src/vz/vz_sdk.c | 3 +- 10 files changed, 57 insertions(+), 46 deletions(-) diff --git a/src/conf/storage_event.c b/src/conf/storage_event.c index de36ec3af9..e18069f718 100644 --- a/src/conf/storage_event.c +++ b/src/conf/storage_event.c @@ -110,10 +110,10 @@ virStoragePoolEventDispatchDefaultFunc(virConnectPtr = conn, virConnectObjectEventGenericCallbac= k cb, void *cbopaque) { - virStoragePoolPtr pool =3D virGetStoragePool(conn, - event->meta.name, - event->meta.uuid, - NULL, NULL); + g_autoptr(virStoragePool) pool =3D virGetStoragePool(conn, + event->meta.name, + event->meta.uuid, + NULL, NULL); if (!pool) return; =20 @@ -127,23 +127,20 @@ virStoragePoolEventDispatchDefaultFunc(virConnectPtr = conn, storagePoolL= ifecycleEvent->type, storagePoolL= ifecycleEvent->detail, cbopaque); - goto cleanup; + return; } =20 case VIR_STORAGE_POOL_EVENT_ID_REFRESH: { ((virConnectStoragePoolEventGenericCallback)cb)(conn, pool, cbopaque); - goto cleanup; + return; } =20 case VIR_STORAGE_POOL_EVENT_ID_LAST: break; } VIR_WARN("Unexpected event ID %d", event->eventID); - - cleanup: - virObjectUnref(pool); } =20 =20 diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c index 5cbd30f93c..bff6eb6ae1 100644 --- a/src/conf/virstorageobj.c +++ b/src/conf/virstorageobj.c @@ -2095,6 +2095,12 @@ virStoragePoolObjListExport(virConnectPtr conn, return data.nPools; =20 error: - virObjectListFree(data.pools); + if (data.pools) { + while (data.nPools--) { + if (data.pools[data.nPools]) + g_object_unref(data.pools[data.nPools]); + } + } + VIR_FREE(data.pools); return -1; } diff --git a/src/datatypes.c b/src/datatypes.c index f1bcca44f1..e434c31785 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -40,7 +40,6 @@ virClassPtr virNodeDeviceClass; virClassPtr virSecretClass; virClassPtr virStreamClass; virClassPtr virStorageVolClass; -virClassPtr virStoragePoolClass; =20 static void virConnectDispose(void *obj); static void virConnectCloseCallbackDataDispose(void *obj); @@ -49,7 +48,6 @@ static void virNodeDeviceDispose(void *obj); static void virSecretDispose(void *obj); static void virStreamDispose(void *obj); static void virStorageVolDispose(void *obj); -static void virStoragePoolDispose(void *obj); =20 G_DEFINE_TYPE(virDomainCheckpoint, vir_domain_checkpoint, G_TYPE_OBJECT); static void virDomainCheckpointFinalize(GObject *obj); @@ -163,6 +161,22 @@ vir_nw_filter_binding_class_init(virNWFilterBindingCla= ss *klass) obj->finalize =3D virNWFilterBindingFinalize; } =20 +G_DEFINE_TYPE(virStoragePool, vir_storage_pool, G_TYPE_OBJECT); +static void virStoragePoolFinalize(GObject *obj); + +static void +vir_storage_pool_init(virStoragePool *pool G_GNUC_UNUSED) +{ +} + +static void +vir_storage_pool_class_init(virStoragePoolClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virStoragePoolFinalize; +} + virClassPtr virAdmConnectClass; virClassPtr virAdmConnectCloseCallbackDataClass; =20 @@ -219,7 +233,6 @@ virDataTypesOnceInit(void) DECLARE_CLASS(virSecret); DECLARE_CLASS(virStream); DECLARE_CLASS(virStorageVol); - DECLARE_CLASS(virStoragePool); =20 DECLARE_CLASS_LOCKABLE(virAdmConnect); DECLARE_CLASS_LOCKABLE(virAdmConnectCloseCallbackData); @@ -628,7 +641,7 @@ virInterfaceFinalize(GObject *obj) * @freeFunc: private data cleanup function pointer specific to driver * * Allocates a new storage pool object. When the object is no longer neede= d, - * virObjectUnref() must be called in order to not leak data. + * g_object_unref() must be called in order to not leak data. * * Returns a pointer to the storage pool object, or NULL on error. */ @@ -637,17 +650,16 @@ virGetStoragePool(virConnectPtr conn, const char *nam= e, const unsigned char *uuid, void *privateData, virFreeCallback freeFunc) { - virStoragePoolPtr ret =3D NULL; + g_autoptr(virStoragePool) ret =3D NULL; =20 if (virDataTypesInitialize() < 0) return NULL; =20 - virCheckConnectGoto(conn, error); - virCheckNonNullArgGoto(name, error); - virCheckNonNullArgGoto(uuid, error); + virCheckConnectReturn(conn, NULL); + virCheckNonNullArgReturn(name, NULL); + virCheckNonNullArgReturn(uuid, NULL); =20 - if (!(ret =3D virObjectNew(virStoragePoolClass))) - goto error; + ret =3D VIR_STORAGE_POOL(g_object_new(VIR_TYPE_STORAGE_POOL, NULL)); =20 ret->name =3D g_strdup(name); =20 @@ -658,16 +670,12 @@ virGetStoragePool(virConnectPtr conn, const char *nam= e, ret->privateData =3D privateData; ret->privateDataFreeFunc =3D freeFunc; =20 - return ret; - - error: - virObjectUnref(ret); - return NULL; + return g_steal_pointer(&ret); } =20 =20 /** - * virStoragePoolDispose: + * virStoragePoolFinalize: * @obj: the storage pool to release * * Unconditionally release all memory associated with a pool. @@ -677,9 +685,9 @@ virGetStoragePool(virConnectPtr conn, const char *name, * which may also be released if its ref count hits zero. */ static void -virStoragePoolDispose(void *obj) +virStoragePoolFinalize(GObject *obj) { - virStoragePoolPtr pool =3D obj; + virStoragePoolPtr pool =3D VIR_STORAGE_POOL(obj); char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 virUUIDFormat(pool->uuid, uuidstr); @@ -690,6 +698,8 @@ virStoragePoolDispose(void *obj) =20 VIR_FREE(pool->name); virObjectUnref(pool->conn); + + G_OBJECT_CLASS(vir_storage_pool_parent_class)->finalize(obj); } =20 =20 diff --git a/src/datatypes.h b/src/datatypes.h index c68a0e9265..a630472f6e 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -36,7 +36,6 @@ extern virClassPtr virNodeDeviceClass; extern virClassPtr virSecretClass; extern virClassPtr virStreamClass; extern virClassPtr virStorageVolClass; -extern virClassPtr virStoragePoolClass; =20 =20 #define VIR_TYPE_DOMAIN_CHECKPOINT vir_domain_checkpoint_get_type() @@ -72,6 +71,9 @@ G_DECLARE_FINAL_TYPE(virNWFilterBinding, NW_FILTER_BINDING, GObject); =20 +#define VIR_TYPE_STORAGE_POOL vir_storage_pool_get_type() +G_DECLARE_FINAL_TYPE(virStoragePool, vir_storage_pool, VIR, STORAGE_POOL, = GObject); + extern virClassPtr virAdmConnectClass; =20 #define VIR_TYPE_ADM_SERVER vir_adm_server_get_type() @@ -192,8 +194,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckStoragePoolReturn(obj, retval) \ do { \ - virStoragePoolPtr _pool =3D (obj); \ - if (!virObjectIsClass(_pool, virStoragePoolClass) || \ + virStoragePoolPtr _pool =3D VIR_STORAGE_POOL(obj); \ + if (!G_IS_OBJECT(_pool) || !(G_OBJECT_TYPE(_pool) =3D=3D VIR_TYPE_= STORAGE_POOL) || \ !virObjectIsClass(_pool->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_STORAGE, \ VIR_ERR_INVALID_STORAGE_POOL, \ @@ -206,8 +208,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckStoragePoolGoto(obj, label) \ do { \ - virStoragePoolPtr _pool=3D (obj); \ - if (!virObjectIsClass(_pool, virStoragePoolClass) || \ + virStoragePoolPtr _pool=3D VIR_STORAGE_POOL(obj); \ + if (!G_IS_OBJECT(_pool) || !(G_OBJECT_TYPE(_pool) =3D=3D VIR_TYPE_= STORAGE_POOL) || \ !virObjectIsClass(_pool->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_STORAGE, \ VIR_ERR_INVALID_STORAGE_POOL, \ @@ -684,7 +686,7 @@ struct _virInterface { * Internal structure associated to a storage pool */ struct _virStoragePool { - virObject parent; + GObject parent; virConnectPtr conn; /* pointer back to the connection= */ char *name; /* the storage pool external name= */ unsigned char uuid[VIR_UUID_BUFLEN]; /* the storage pool unique identi= fier */ @@ -697,7 +699,6 @@ struct _virStoragePool { virFreeCallback privateDataFreeFunc; }; =20 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(virStoragePool, virObjectUnref); =20 =20 /** diff --git a/src/libvirt-storage.c b/src/libvirt-storage.c index 0406fe84d3..b88b2162de 100644 --- a/src/libvirt-storage.c +++ b/src/libvirt-storage.c @@ -846,7 +846,7 @@ virStoragePoolFree(virStoragePoolPtr pool) =20 virCheckStoragePoolReturn(pool, -1); =20 - virObjectUnref(pool); + g_object_unref(pool); return 0; =20 } @@ -872,13 +872,13 @@ virStoragePoolFree(virStoragePoolPtr pool) int virStoragePoolRef(virStoragePoolPtr pool) { - VIR_DEBUG("pool=3D%p refs=3D%d", pool, pool ? pool->parent.u.s.refs : = 0); + VIR_DEBUG("pool=3D%p", pool); =20 virResetLastError(); =20 virCheckStoragePoolReturn(pool, -1); =20 - virObjectRef(pool); + g_object_ref(pool); return 0; } =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index a5e4b00a0e..f48ed05684 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1367,7 +1367,6 @@ virGetStream; virNewConnectCloseCallbackData; virNodeDeviceClass; virSecretClass; -virStoragePoolClass; virStorageVolClass; virStreamClass; =20 diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index bc280e856a..de65c730f7 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -174,7 +174,7 @@ qemuMigrationDstPrecreateDisk(virConnectPtr conn, unsigned long long capacity) { int ret =3D -1; - virStoragePoolPtr pool =3D NULL; + g_autoptr(virStoragePool) pool =3D NULL; virStorageVolPtr vol =3D NULL; char *volName =3D NULL, *basePath =3D NULL; char *volStr =3D NULL; @@ -269,7 +269,6 @@ qemuMigrationDstPrecreateDisk(virConnectPtr conn, VIR_FREE(basePath); VIR_FREE(volStr); virObjectUnref(vol); - virObjectUnref(pool); return ret; } =20 diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon= _dispatch.c index 9f5aee07cd..9f367bc515 100644 --- a/src/remote/remote_daemon_dispatch.c +++ b/src/remote/remote_daemon_dispatch.c @@ -6196,7 +6196,7 @@ remoteDispatchConnectStoragePoolEventRegisterAny(virN= etServerPtr server G_GNUC_U remoteEventCallbackFree(callback); if (rv < 0) virNetMessageSaveError(rerr); - virObjectUnref(pool); + g_object_unref(pool); return rv; } =20 diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index f19061200c..f5d7842104 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -5493,7 +5493,7 @@ remoteStoragePoolBuildEventLifecycle(virNetClientProg= ramPtr prog G_GNUC_UNUSED, =20 event =3D virStoragePoolEventLifecycleNew(pool->name, pool->uuid, msg-= >event, msg->detail); - virObjectUnref(pool); + g_object_unref(pool); =20 virObjectEventStateQueueRemote(priv->eventState, event, msg->callbackI= D); } @@ -5514,7 +5514,7 @@ remoteStoragePoolBuildEventRefresh(virNetClientProgra= mPtr prog G_GNUC_UNUSED, return; =20 event =3D virStoragePoolEventRefreshNew(pool->name, pool->uuid); - virObjectUnref(pool); + g_object_unref(pool); =20 virObjectEventStateQueueRemote(priv->eventState, event, msg->callbackI= D); } diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index 9cee6f1fde..ed3d5ee2c0 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -4081,7 +4081,7 @@ prlsdkCreateVm(vzDriverPtr driver, virDomainDefPtr de= f) static int virStorageTranslatePoolLocal(virConnectPtr conn, virStorageSourcePtr src) { - virStoragePoolPtr pool =3D NULL; + g_autoptr(virStoragePool) pool =3D NULL; virStorageVolPtr vol =3D NULL; virStorageVolInfo info; int ret =3D -1; @@ -4115,7 +4115,6 @@ virStorageTranslatePoolLocal(virConnectPtr conn, virS= torageSourcePtr src) ret =3D 0; =20 cleanup: - virObjectUnref(pool); virObjectUnref(vol); return ret; } --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927031; cv=none; d=zohomail.com; s=zohoarc; b=YZ9brV5aMsIo+8q8WMZWyjJc3RNrFLPOx1+axDcPqNZBXA3Y/bZif0B6CcL/TN42u6wnQcEoFkmEtui2t6B1jDZxoHbrYGsjxROuJgkCanQb4Y7p4fTDEUMUIyn3HRpr2fsBRqQA7JwumvaQFx9XQagHjD9OhsgU21c7etlGPDo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927031; 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=TYNfY+SXoIOen9HJAHHCs9cO4YdQ+ki0MenuVaiSkEA=; b=ieRZr8dXeDLITk8Cly7AE97wo8I9kDTdPxLtvIK8jJnSyju7MLgEsiFLc5iUA/OYNqfenlU/6YC2ZiTloERqDxWefHZQlA2F3DTDruCtmjZqgqP+tcvh/W+1nNNBAJiO+x/H+6yYS1vTdAP3vceSzORCT17gR5z091wOKWXoWaE= 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 1585927031929893.4602059372322; Fri, 3 Apr 2020 08:17:11 -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-300-sQSqtVcsNZCIql87dt3daA-1; Fri, 03 Apr 2020 11:17:08 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5D20C1007269; Fri, 3 Apr 2020 15:17:00 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 29C195C1D6; Fri, 3 Apr 2020 15:17:00 +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 B69E04E46F; Fri, 3 Apr 2020 15:16:59 +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 033FGsZW028308 for ; Fri, 3 Apr 2020 11:16:54 -0400 Received: by smtp.corp.redhat.com (Postfix) id 717FA2028DCC; Fri, 3 Apr 2020 15:16:54 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6D27D2028CD6 for ; Fri, 3 Apr 2020 15:16:54 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (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 4E84B1017E42 for ; Fri, 3 Apr 2020 15:16:54 +0000 (UTC) Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-216-iYE2tZWiOvmt1Q48p6r9AA-1; Fri, 03 Apr 2020 11:16:51 -0400 Received: by mail-wr1-f51.google.com with SMTP id c7so8947091wrx.5 for ; Fri, 03 Apr 2020 08:16:51 -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.16.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927030; 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=TYNfY+SXoIOen9HJAHHCs9cO4YdQ+ki0MenuVaiSkEA=; b=RTfs05MwUJ9b/62TufmkiKOS5K/yVivxyhMQH8SBtRl+DXtFtzuR+5DyQK7B1RguRv2yA+ 93+Q3F7LpZZs79ch7f2NKqNurzdVEGvwGqBbMBnp7sl8i5cMWOK0pjdFLGKnDDsDJ6blmJ KBzS9Pq4gZAlwcFMuE/+oWLbboBUDSc= X-MC-Unique: sQSqtVcsNZCIql87dt3daA-1 X-MC-Unique: iYE2tZWiOvmt1Q48p6r9AA-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=tahiJXOAjk4YOfHSen3A5GMj6/N2dKYEe4w3brSnTNw=; b=ElvsqCkRlDMLfwOK9rL+wWXAbLtIIM7qkUjLgo7k4UEjjrN8BXJfBLI9Yox1RQvn9T dFVY0dBjeWcNiFhWD+IVASctYdsmnFdAJkRIwCKW3zwFLtysa9G33Z665xfl6enoVOW+ mnI+LqFDur6jlfw03Qx5mY/wonVviQlVWWDzhvurMqvO8JKUsySdW5RjDs1tMkkVa38o 540mz3/tobywx/8uJjNT9p1rbZfSW2CnMF+zyRvVF7jzc+vnB1NUul4GZ5k1DdqbQmT/ rzKCkEIMsZYdKTccMGdvNiGrHuQ9I/ACaxIwJR2n556yQdCDmUen5FUkdmuPBDCYwh8I dyTw== X-Gm-Message-State: AGi0PubTTEGYmplIzWBgABAgQE4/3bMVrWQyOGErQPNHViUI9QMbv5XJ VSVZ8aqKNfKxk/XbFW+31XHRoUC7S6E= X-Google-Smtp-Source: APiQypJYPdnntpkCtOE4GRs5yM9CUKBgVsyTvzAqd9dxSn7G+BOp+Q+w1EwQNyG7qE/ZiLOrEGQzwQ== X-Received: by 2002:adf:aacc:: with SMTP id i12mr10176039wrc.116.1585927010098; Fri, 03 Apr 2020 08:16:50 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 23/36] datatypes: convert virStorageVol to GObject Date: Fri, 3 Apr 2020 17:15:51 +0200 Message-Id: <20200403151604.106616-24-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.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGsZW028308 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.16 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/conf/virstorageobj.c | 8 +++++- src/datatypes.c | 48 ++++++++++++++++++++++-------------- src/datatypes.h | 15 +++++------ src/libvirt-storage.c | 6 ++--- src/libvirt_private.syms | 1 - src/qemu/qemu_migration.c | 3 +-- src/storage/storage_driver.c | 7 +++--- src/vz/vz_sdk.c | 19 ++++++-------- 8 files changed, 58 insertions(+), 49 deletions(-) diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c index bff6eb6ae1..698fc25c5f 100644 --- a/src/conf/virstorageobj.c +++ b/src/conf/virstorageobj.c @@ -1052,7 +1052,13 @@ virStoragePoolObjVolumeListExport(virConnectPtr conn, return data.nvols; =20 error: - virObjectListFree(data.vols); + if (data.vols) { + while (data.nvols--) { + if (data.vols[data.nvols]) + g_object_unref(data.vols[data.nvols]); + } + VIR_FREE(data.vols); + } return -1; } =20 diff --git a/src/datatypes.c b/src/datatypes.c index e434c31785..1f811e5f5e 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -39,7 +39,6 @@ virClassPtr virDomainClass; virClassPtr virNodeDeviceClass; virClassPtr virSecretClass; virClassPtr virStreamClass; -virClassPtr virStorageVolClass; =20 static void virConnectDispose(void *obj); static void virConnectCloseCallbackDataDispose(void *obj); @@ -47,7 +46,6 @@ static void virDomainDispose(void *obj); static void virNodeDeviceDispose(void *obj); static void virSecretDispose(void *obj); static void virStreamDispose(void *obj); -static void virStorageVolDispose(void *obj); =20 G_DEFINE_TYPE(virDomainCheckpoint, vir_domain_checkpoint, G_TYPE_OBJECT); static void virDomainCheckpointFinalize(GObject *obj); @@ -177,6 +175,22 @@ vir_storage_pool_class_init(virStoragePoolClass *klass) obj->finalize =3D virStoragePoolFinalize; } =20 +G_DEFINE_TYPE(virStorageVol, vir_storage_vol, G_TYPE_OBJECT); +static void virStorageVolFinalize(GObject *obj); + +static void +vir_storage_vol_init(virStorageVol *vol G_GNUC_UNUSED) +{ +} + +static void +vir_storage_vol_class_init(virStorageVolClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virStorageVolFinalize; +} + virClassPtr virAdmConnectClass; virClassPtr virAdmConnectCloseCallbackDataClass; =20 @@ -232,7 +246,6 @@ virDataTypesOnceInit(void) DECLARE_CLASS(virNodeDevice); DECLARE_CLASS(virSecret); DECLARE_CLASS(virStream); - DECLARE_CLASS(virStorageVol); =20 DECLARE_CLASS_LOCKABLE(virAdmConnect); DECLARE_CLASS_LOCKABLE(virAdmConnectCloseCallbackData); @@ -713,7 +726,7 @@ virStoragePoolFinalize(GObject *obj) * @freeFunc: private data cleanup function pointer specific to driver * * Allocates a new storage volume object. When the object is no longer nee= ded, - * virObjectUnref() must be called in order to not leak data. + * g_object_unref() must be called in order to not leak data. * * Returns a pointer to the storage volume object, or NULL on error. */ @@ -721,18 +734,17 @@ virStorageVolPtr virGetStorageVol(virConnectPtr conn, const char *pool, const char *name, const char *key, void *privateData, virFreeCallback freeF= unc) { - virStorageVolPtr ret =3D NULL; + g_autoptr(virStorageVol) ret =3D NULL; =20 if (virDataTypesInitialize() < 0) return NULL; =20 - virCheckConnectGoto(conn, error); - virCheckNonNullArgGoto(pool, error); - virCheckNonNullArgGoto(name, error); - virCheckNonNullArgGoto(key, error); + virCheckConnectReturn(conn, NULL); + virCheckNonNullArgReturn(pool, NULL); + virCheckNonNullArgReturn(name, NULL); + virCheckNonNullArgReturn(key, NULL); =20 - if (!(ret =3D virObjectNew(virStorageVolClass))) - goto error; + ret =3D VIR_STORAGE_VOL(g_object_new(VIR_TYPE_STORAGE_VOL, NULL)); =20 ret->pool =3D g_strdup(pool); ret->name =3D g_strdup(name); @@ -744,16 +756,12 @@ virGetStorageVol(virConnectPtr conn, const char *pool= , const char *name, ret->privateData =3D privateData; ret->privateDataFreeFunc =3D freeFunc; =20 - return ret; - - error: - virObjectUnref(ret); - return NULL; + return g_steal_pointer(&ret); } =20 =20 /** - * virStorageVolDispose: + * virStorageVolFinalize: * @obj: the storage volume to release * * Unconditionally release all memory associated with a volume. @@ -763,9 +771,9 @@ virGetStorageVol(virConnectPtr conn, const char *pool, = const char *name, * which may also be released if its ref count hits zero. */ static void -virStorageVolDispose(void *obj) +virStorageVolFinalize(GObject *obj) { - virStorageVolPtr vol =3D obj; + virStorageVolPtr vol =3D VIR_STORAGE_VOL(obj); VIR_DEBUG("release vol %p %s", vol, vol->name); =20 if (vol->privateDataFreeFunc) @@ -775,6 +783,8 @@ virStorageVolDispose(void *obj) VIR_FREE(vol->name); VIR_FREE(vol->pool); virObjectUnref(vol->conn); + + G_OBJECT_CLASS(vir_storage_vol_parent_class)->finalize(obj); } =20 =20 diff --git a/src/datatypes.h b/src/datatypes.h index a630472f6e..7fab565a7c 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -35,7 +35,6 @@ extern virClassPtr virDomainClass; extern virClassPtr virNodeDeviceClass; extern virClassPtr virSecretClass; extern virClassPtr virStreamClass; -extern virClassPtr virStorageVolClass; =20 =20 #define VIR_TYPE_DOMAIN_CHECKPOINT vir_domain_checkpoint_get_type() @@ -74,6 +73,9 @@ G_DECLARE_FINAL_TYPE(virNWFilterBinding, #define VIR_TYPE_STORAGE_POOL vir_storage_pool_get_type() G_DECLARE_FINAL_TYPE(virStoragePool, vir_storage_pool, VIR, STORAGE_POOL, = GObject); =20 +#define VIR_TYPE_STORAGE_VOL vir_storage_vol_get_type() +G_DECLARE_FINAL_TYPE(virStorageVol, vir_storage_vol, VIR, STORAGE_VOL, GOb= ject); + extern virClassPtr virAdmConnectClass; =20 #define VIR_TYPE_ADM_SERVER vir_adm_server_get_type() @@ -221,8 +223,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckStorageVolReturn(obj, retval) \ do { \ - virStorageVolPtr _vol =3D (obj); \ - if (!virObjectIsClass(_vol, virStorageVolClass) || \ + virStorageVolPtr _vol =3D VIR_STORAGE_VOL(obj); \ + if (!G_IS_OBJECT(_vol) || !(G_OBJECT_TYPE(_vol) =3D=3D VIR_TYPE_ST= ORAGE_VOL) || \ !virObjectIsClass(_vol->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_STORAGE, \ VIR_ERR_INVALID_STORAGE_VOL, \ @@ -234,8 +236,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); } while (0) #define virCheckStorageVolGoto(obj, label) \ do { \ - virStorageVolPtr _vol =3D (obj); \ - if (!virObjectIsClass(_vol, virStorageVolClass) || \ + virStorageVolPtr _vol =3D VIR_STORAGE_VOL(obj); \ + if (!G_IS_OBJECT(_vol) || !(G_OBJECT_TYPE(_vol) =3D=3D VIR_TYPE_ST= ORAGE_VOL) || \ !virObjectIsClass(_vol->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_STORAGE, \ VIR_ERR_INVALID_STORAGE_VOL, \ @@ -707,7 +709,7 @@ struct _virStoragePool { * Internal structure associated to a storage volume */ struct _virStorageVol { - virObject parent; + GObject parent; virConnectPtr conn; /* pointer back to the connection= */ char *pool; /* Pool name of owner */ char *name; /* the storage vol external name = */ @@ -721,7 +723,6 @@ struct _virStorageVol { virFreeCallback privateDataFreeFunc; }; =20 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(virStorageVol, virObjectUnref); =20 =20 /** diff --git a/src/libvirt-storage.c b/src/libvirt-storage.c index b88b2162de..53ad9eeec6 100644 --- a/src/libvirt-storage.c +++ b/src/libvirt-storage.c @@ -1884,7 +1884,7 @@ virStorageVolFree(virStorageVolPtr vol) =20 virCheckStorageVolReturn(vol, -1); =20 - virObjectUnref(vol); + g_object_unref(vol); return 0; } =20 @@ -1909,13 +1909,13 @@ virStorageVolFree(virStorageVolPtr vol) int virStorageVolRef(virStorageVolPtr vol) { - VIR_DEBUG("vol=3D%p refs=3D%d", vol, vol ? vol->parent.u.s.refs : 0); + VIR_DEBUG("vol=3D%p", vol); =20 virResetLastError(); =20 virCheckStorageVolReturn(vol, -1); =20 - virObjectRef(vol); + g_object_ref(vol); return 0; } =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index f48ed05684..7bee97f2dc 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1367,7 +1367,6 @@ virGetStream; virNewConnectCloseCallbackData; virNodeDeviceClass; virSecretClass; -virStorageVolClass; virStreamClass; =20 =20 diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index de65c730f7..07e137e2c9 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -175,7 +175,7 @@ qemuMigrationDstPrecreateDisk(virConnectPtr conn, { int ret =3D -1; g_autoptr(virStoragePool) pool =3D NULL; - virStorageVolPtr vol =3D NULL; + g_autoptr(virStorageVol) vol =3D NULL; char *volName =3D NULL, *basePath =3D NULL; char *volStr =3D NULL; virBuffer buf =3D VIR_BUFFER_INITIALIZER; @@ -268,7 +268,6 @@ qemuMigrationDstPrecreateDisk(virConnectPtr conn, cleanup: VIR_FREE(basePath); VIR_FREE(volStr); - virObjectUnref(vol); return ret; } =20 diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index 2db763caa5..8c0f7eae44 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -1892,7 +1892,8 @@ storageVolCreateXML(virStoragePoolPtr pool, virStoragePoolObjPtr obj; virStoragePoolDefPtr def; virStorageBackendPtr backend; - virStorageVolPtr vol =3D NULL, newvol =3D NULL; + virStorageVolPtr vol =3D NULL; + g_autoptr(virStorageVol) newvol =3D NULL; g_autoptr(virStorageVolDef) voldef =3D NULL; =20 virCheckFlags(VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA, NULL); @@ -2012,7 +2013,6 @@ storageVolCreateXML(virStoragePoolPtr pool, voldef =3D NULL; =20 cleanup: - virObjectUnref(newvol); virStoragePoolObjEndAPI(&obj); return vol; } @@ -2029,7 +2029,7 @@ storageVolCreateXMLFrom(virStoragePoolPtr pool, virStorageBackendPtr backend; virStorageVolDefPtr voldefsrc =3D NULL; virStorageVolDefPtr shadowvol =3D NULL; - virStorageVolPtr newvol =3D NULL; + g_autoptr(virStorageVol) newvol =3D NULL; virStorageVolPtr vol =3D NULL; int buildret; g_autoptr(virStorageVolDef) voldef =3D NULL; @@ -2204,7 +2204,6 @@ storageVolCreateXMLFrom(virStoragePoolPtr pool, voldef =3D NULL; =20 cleanup: - virObjectUnref(newvol); VIR_FREE(shadowvol); virStoragePoolObjEndAPI(&obj); virStoragePoolObjEndAPI(&objsrc); diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index ed3d5ee2c0..17d8f9d94b 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -4082,9 +4082,8 @@ static int virStorageTranslatePoolLocal(virConnectPtr conn, virStorageSourcePtr src) { g_autoptr(virStoragePool) pool =3D NULL; - virStorageVolPtr vol =3D NULL; + g_autoptr(virStorageVol) vol =3D NULL; virStorageVolInfo info; - int ret =3D -1; =20 if (!(pool =3D virStoragePoolLookupByName(conn, src->srcpool->pool))) return -1; @@ -4093,30 +4092,26 @@ virStorageTranslatePoolLocal(virConnectPtr conn, vi= rStorageSourcePtr src) _("storage pool '%s' containing volume '%s' " "is not active"), src->srcpool->pool, src->srcpool->volume); - goto cleanup; + return -1; } =20 if (!(vol =3D virStorageVolLookupByName(pool, src->srcpool->volume))) - goto cleanup; + return -1; =20 if (virStorageVolGetInfo(vol, &info) < 0) - goto cleanup; + return -1; =20 if (info.type !=3D VIR_STORAGE_VOL_PLOOP) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unsupported volume format '%s'"), virStorageVolTypeToString(info.type)); - goto cleanup; + return -1; } =20 if (!(src->path =3D virStorageVolGetPath(vol))) - goto cleanup; - - ret =3D 0; + return -1; =20 - cleanup: - virObjectUnref(vol); - return ret; + return 0; } =20 =20 --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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=1585927041; cv=none; d=zohomail.com; s=zohoarc; b=a6BBOIhgryYOvqUcxR1OhoWEapZXX92j8+T7py/GjUCwvN5PUyx2oEa7jT2XZJCW8NPamdRZwGlCFjM5+u20LkvkfFvPo1UOGbZXVhNh7eJs9HO+Esme7cFtaGJUpP9pN83U3ZXZtYDrzN4N8pNaYGR8WWQcdsp3ar+XSLifDAg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927041; 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=AO1ZLJqlJ+jtAsZukDCRCGxTri8T6bHTM8BUi3JcLOo=; b=hlva1V1SUDsD2rQUBkq44Pbwg+GQkMFQutmNLvOnEQo/QMb2rLTrrabLR+t5KMmR+O7bAY5c0nD+2HN7BuFseyfib5VHHTokV1KjOwdmrv0qB2DuTQnIh1o1JKGvPLNfrROBl3Kul92B6IsKCfpL2VJIT94Xfdd4HwQStkdLino= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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-delivery-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1585927041164165.30644910661965; Fri, 3 Apr 2020 08:17:21 -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-328-f9Cbeex1OjSK5-xeorzZNw-1; Fri, 03 Apr 2020 11:17:16 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 37A9D149C0; Fri, 3 Apr 2020 15:17:10 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 02DA05C1D6; Fri, 3 Apr 2020 15:17:10 +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 A1B664E47B; Fri, 3 Apr 2020 15:17:09 +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 033FGuT0028326 for ; Fri, 3 Apr 2020 11:16:56 -0400 Received: by smtp.corp.redhat.com (Postfix) id E2E22202A942; Fri, 3 Apr 2020 15:16: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 DE9D3202A941 for ; Fri, 3 Apr 2020 15:16:55 +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 BF1F48FF67B for ; Fri, 3 Apr 2020 15:16:55 +0000 (UTC) Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-341-wz6GoFAgPf6EajmcLQh-6Q-1; Fri, 03 Apr 2020 11:16:53 -0400 Received: by mail-wm1-f49.google.com with SMTP id c195so2348839wme.1 for ; Fri, 03 Apr 2020 08:16:53 -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.16.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927039; 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=AO1ZLJqlJ+jtAsZukDCRCGxTri8T6bHTM8BUi3JcLOo=; b=G6MP01MhKuBuIcd8P0dQ78dPm3l2e4OYENaVFvaemBoEp2IWIgmBpQmP1ZP8YhkeYfHkCN MsBukCT7DdOFdPVOs6h2COBa5bhjcDRs1o7xb4T2zSt0kJzsIO+eNJo2nD7lb9Afr0pDYk uMuhSAhhvvwFS9PmzQS9JH/k0VpR4Kk= X-MC-Unique: f9Cbeex1OjSK5-xeorzZNw-1 X-MC-Unique: wz6GoFAgPf6EajmcLQh-6Q-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=j5ji0EkhhW6rqPwGjcQngNSOXJMkWaqjUbIUdhHG+Qs=; b=q0vPf73Ne9g3zPFYhTX0zKPtSeMVWpm0cJoYVCEbgxyNrGlD+aQ4helj3goSfQHRpn IT8Lzx/FmdKhW/8N+7rYUIUmXXnZpAbODQNWrxID1wuSKiREIDt97ssP5+AIylXSjBdA lL7bBkdatoSKEDpXt6vbWMkAEYGAGZdg10EOEDAjkbzINIkynB3iTB8Oeb7wjRm+qvXQ 4eAY/r3bpE7ymAkSEy8iq2Zpq5GwO1cpUUo0r6Fvdfle4ly0LOM+pZBuRgKyvo0IpQmb Vd7w2gMyaAoCM7yTgYKrEyrG2poeFlaGQ//vAqUm77JieoLVrcnEaH3QO53sNlKtHLHJ Aifg== X-Gm-Message-State: AGi0PuaItttjdXbJznOv3lpzRYTMdtaRu9srv+daDYdSbMQ9st/A8jxM YXVQt4wJEdPTar+2hNnn5RR3w6CpFDk= X-Google-Smtp-Source: APiQypKoOGefiT2J4ndRA6BJcGFuB/xbrBCY3CZAYiwqfM4wOG2T/K24SkiqKequKYW4ygbfJQT0LA== X-Received: by 2002:a1c:4486:: with SMTP id r128mr9501065wma.32.1585927011520; Fri, 03 Apr 2020 08:16:51 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 24/36] datatypes: convert virNodeDevice to GObject Date: Fri, 3 Apr 2020 17:15:52 +0200 Message-Id: <20200403151604.106616-25-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.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FGuT0028326 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.16 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/conf/node_device_event.c | 9 +++----- src/conf/node_device_util.c | 4 ++-- src/conf/virnodedeviceobj.c | 10 ++++++-- src/datatypes.c | 44 ++++++++++++++++++++++-------------- src/datatypes.h | 14 +++++++----- src/libvirt-nodedev.c | 6 ++--- src/libvirt_private.syms | 1 - src/libxl/libxl_driver.c | 9 +++----- src/qemu/qemu_driver.c | 9 +++----- src/remote/remote_driver.c | 4 ++-- src/rpc/gendispatch.pl | 2 +- src/test/test_driver.c | 2 +- 12 files changed, 61 insertions(+), 53 deletions(-) diff --git a/src/conf/node_device_event.c b/src/conf/node_device_event.c index c6915be593..cc2cdd9352 100644 --- a/src/conf/node_device_event.c +++ b/src/conf/node_device_event.c @@ -110,7 +110,7 @@ virNodeDeviceEventDispatchDefaultFunc(virConnectPtr con= n, virConnectObjectEventGenericCallback= cb, void *cbopaque) { - virNodeDevicePtr dev =3D virGetNodeDevice(conn, + g_autoptr(virNodeDevice) dev =3D virGetNodeDevice(conn, event->meta.name); =20 if (!dev) @@ -126,23 +126,20 @@ virNodeDeviceEventDispatchDefaultFunc(virConnectPtr c= onn, nodeDeviceLif= ecycleEvent->type, nodeDeviceLif= ecycleEvent->detail, cbopaque); - goto cleanup; + return; } =20 case VIR_NODE_DEVICE_EVENT_ID_UPDATE: { ((virConnectNodeDeviceEventGenericCallback)cb)(conn, dev, cbopaque); - goto cleanup; + return; } =20 case VIR_NODE_DEVICE_EVENT_ID_LAST: break; } VIR_WARN("Unexpected event ID %d", event->eventID); - - cleanup: - virObjectUnref(dev); } =20 =20 diff --git a/src/conf/node_device_util.c b/src/conf/node_device_util.c index 5e80422d7f..0b9292ffd3 100644 --- a/src/conf/node_device_util.c +++ b/src/conf/node_device_util.c @@ -20,6 +20,7 @@ =20 #include "internal.h" =20 +#include "datatypes.h" #include "node_device_util.h" #include "virlog.h" #include "virscsihost.h" @@ -45,7 +46,7 @@ char * virNodeDeviceGetParentName(virConnectPtr conn, const char *nodedev_name) { - virNodeDevicePtr device =3D NULL; + g_autoptr(virNodeDevice) device =3D NULL; char *parent; =20 if (!(device =3D virNodeDeviceLookupByName(conn, nodedev_name))) { @@ -56,7 +57,6 @@ virNodeDeviceGetParentName(virConnectPtr conn, } =20 parent =3D g_strdup(virNodeDeviceGetParent(device)); - virObjectUnref(device); =20 return parent; } diff --git a/src/conf/virnodedeviceobj.c b/src/conf/virnodedeviceobj.c index 3a34a324ca..5ee2db8b01 100644 --- a/src/conf/virnodedeviceobj.c +++ b/src/conf/virnodedeviceobj.c @@ -866,7 +866,6 @@ virNodeDeviceObjListExportCallback(void *payload, virNodeDeviceObjMatch(obj, data->flags)) { if (data->devices) { if (!(device =3D virGetNodeDevice(data->conn, def->name))) { - virObjectUnref(device); data->error =3D true; goto cleanup; } @@ -914,7 +913,14 @@ virNodeDeviceObjListExport(virConnectPtr conn, return data.ndevices; =20 cleanup: - virObjectListFree(data.devices); + if (data.devices) { + while (data.ndevices--) { + if (data.devices[data.ndevices]) + g_object_unref(data.devices[data.ndevices]); + } + } + VIR_FREE(data.devices); + return -1; } =20 diff --git a/src/datatypes.c b/src/datatypes.c index 1f811e5f5e..43767b9fb5 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -36,14 +36,12 @@ VIR_LOG_INIT("datatypes"); virClassPtr virConnectClass; virClassPtr virConnectCloseCallbackDataClass; virClassPtr virDomainClass; -virClassPtr virNodeDeviceClass; virClassPtr virSecretClass; virClassPtr virStreamClass; =20 static void virConnectDispose(void *obj); static void virConnectCloseCallbackDataDispose(void *obj); static void virDomainDispose(void *obj); -static void virNodeDeviceDispose(void *obj); static void virSecretDispose(void *obj); static void virStreamDispose(void *obj); =20 @@ -127,6 +125,22 @@ vir_network_port_class_init(virNetworkPortClass *klass) obj->finalize =3D virNetworkPortFinalize; } =20 +G_DEFINE_TYPE(virNodeDevice, vir_node_device, G_TYPE_OBJECT); +static void virNodeDeviceFinalize(GObject *obj); + +static void +vir_node_device_init(virNodeDevice *dev G_GNUC_UNUSED) +{ +} + +static void +vir_node_device_class_init(virNodeDeviceClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virNodeDeviceFinalize; +} + G_DEFINE_TYPE(virNWFilter, vir_nw_filter, G_TYPE_OBJECT); static void virNWFilterFinalize(GObject *obj); =20 @@ -243,7 +257,6 @@ virDataTypesOnceInit(void) DECLARE_CLASS_LOCKABLE(virConnect); DECLARE_CLASS_LOCKABLE(virConnectCloseCallbackData); DECLARE_CLASS(virDomain); - DECLARE_CLASS(virNodeDevice); DECLARE_CLASS(virSecret); DECLARE_CLASS(virStream); =20 @@ -794,37 +807,32 @@ virStorageVolFinalize(GObject *obj) * @name: device name (unique on node) * * Allocates a new node device object. When the object is no longer needed, - * virObjectUnref() must be called in order to not leak data. + * g_object_unref() must be called in order to not leak data. * * Returns a pointer to the node device object, or NULL on error. */ virNodeDevicePtr virGetNodeDevice(virConnectPtr conn, const char *name) { - virNodeDevicePtr ret =3D NULL; + g_autoptr(virNodeDevice) ret =3D NULL; =20 if (virDataTypesInitialize() < 0) return NULL; =20 - virCheckConnectGoto(conn, error); - virCheckNonNullArgGoto(name, error); + virCheckConnectReturn(conn, NULL); + virCheckNonNullArgReturn(name, NULL); =20 - if (!(ret =3D virObjectNew(virNodeDeviceClass))) - goto error; + ret =3D VIR_NODE_DEVICE(g_object_new(VIR_TYPE_NODE_DEVICE, NULL)); =20 ret->name =3D g_strdup(name); =20 ret->conn =3D virObjectRef(conn); - return ret; - - error: - virObjectUnref(ret); - return NULL; + return g_steal_pointer(&ret); } =20 =20 /** - * virNodeDeviceDispose: + * virNodeDeviceFinalize: * @obj: the node device to release * * Unconditionally release all memory associated with a device. @@ -834,15 +842,17 @@ virGetNodeDevice(virConnectPtr conn, const char *name) * which may also be released if its ref count hits zero. */ static void -virNodeDeviceDispose(void *obj) +virNodeDeviceFinalize(GObject *obj) { - virNodeDevicePtr dev =3D obj; + virNodeDevicePtr dev =3D VIR_NODE_DEVICE(obj); VIR_DEBUG("release dev %p %s", dev, dev->name); =20 VIR_FREE(dev->name); VIR_FREE(dev->parentName); =20 virObjectUnref(dev->conn); + + G_OBJECT_CLASS(vir_node_device_parent_class)->finalize(obj); } =20 =20 diff --git a/src/datatypes.h b/src/datatypes.h index 7fab565a7c..3b9a31920b 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -32,7 +32,6 @@ =20 extern virClassPtr virConnectClass; extern virClassPtr virDomainClass; -extern virClassPtr virNodeDeviceClass; extern virClassPtr virSecretClass; extern virClassPtr virStreamClass; =20 @@ -60,6 +59,9 @@ G_DECLARE_FINAL_TYPE(virNetwork, vir_network, VIR, NETWOR= K, GObject); #define VIR_TYPE_NETWORK_PORT vir_network_port_get_type() G_DECLARE_FINAL_TYPE(virNetworkPort, vir_network_port, VIR, NETWORK_PORT, = GObject); =20 +#define VIR_TYPE_NODE_DEVICE vir_node_device_get_type() +G_DECLARE_FINAL_TYPE(virNodeDevice, vir_node_device, VIR, NODE_DEVICE, GOb= ject); + #define VIR_TYPE_NW_FILTER vir_nw_filter_get_type() G_DECLARE_FINAL_TYPE(virNWFilter, vir_nw_filter, VIR, NW_FILTER, GObject); =20 @@ -249,8 +251,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckNodeDeviceReturn(obj, retval) \ do { \ - virNodeDevicePtr _node =3D (obj); \ - if (!virObjectIsClass(_node, virNodeDeviceClass) || \ + virNodeDevicePtr _node =3D VIR_NODE_DEVICE(obj); \ + if (!G_IS_OBJECT(_node) || !(G_OBJECT_TYPE(_node) =3D=3D VIR_TYPE_= NODE_DEVICE) || \ !virObjectIsClass(_node->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_NODEDEV, \ VIR_ERR_INVALID_NODE_DEVICE, \ @@ -263,8 +265,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckNodeDeviceGoto(obj, label) \ do { \ - virNodeDevicePtr _dev=3D (obj); \ - if (!virObjectIsClass(_dev, virNodeDeviceClass) || \ + virNodeDevicePtr _dev=3D VIR_NODE_DEVICE(obj); \ + if (!G_IS_OBJECT(_dev) || !(G_OBJECT_TYPE(_dev) =3D=3D VIR_TYPE_NO= DE_DEVICE) || \ !virObjectIsClass(_dev->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_NODEDEV, \ VIR_ERR_INVALID_NODE_DEVICE, \ @@ -731,7 +733,7 @@ struct _virStorageVol { * Internal structure associated with a node device */ struct _virNodeDevice { - virObject parent; + GObject parent; virConnectPtr conn; /* pointer back to the connection = */ char *name; /* device name (unique on node) */ char *parentName; /* parent device name */ diff --git a/src/libvirt-nodedev.c b/src/libvirt-nodedev.c index dce46b7181..98db5e9813 100644 --- a/src/libvirt-nodedev.c +++ b/src/libvirt-nodedev.c @@ -452,7 +452,7 @@ virNodeDeviceFree(virNodeDevicePtr dev) =20 virCheckNodeDeviceReturn(dev, -1); =20 - virObjectUnref(dev); + g_object_unref(dev); return 0; } =20 @@ -477,13 +477,13 @@ virNodeDeviceFree(virNodeDevicePtr dev) int virNodeDeviceRef(virNodeDevicePtr dev) { - VIR_DEBUG("dev=3D%p refs=3D%d", dev, dev ? dev->parent.u.s.refs : 0); + VIR_DEBUG("dev=3D%p", dev); =20 virResetLastError(); =20 virCheckNodeDeviceReturn(dev, -1); =20 - virObjectRef(dev); + g_object_ref(dev); return 0; } =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 7bee97f2dc..f2187b7cce 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1365,7 +1365,6 @@ virGetStoragePool; virGetStorageVol; virGetStream; virNewConnectCloseCallbackData; -virNodeDeviceClass; virSecretClass; virStreamClass; =20 diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 6564b45ee4..bd43f3310e 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -5788,7 +5788,7 @@ libxlNodeDeviceDetachFlags(virNodeDevicePtr dev, libxlDriverPrivatePtr driver =3D dev->conn->privateData; virHostdevManagerPtr hostdev_mgr =3D driver->hostdevMgr; virConnectPtr nodeconn =3D NULL; - virNodeDevicePtr nodedev =3D NULL; + g_autoptr(virNodeDevice) nodedev =3D NULL; =20 virCheckFlags(0, -1); =20 @@ -5838,7 +5838,6 @@ libxlNodeDeviceDetachFlags(virNodeDevicePtr dev, cleanup: virPCIDeviceFree(pci); virNodeDeviceDefFree(def); - virObjectUnref(nodedev); virObjectUnref(nodeconn); VIR_FREE(xml); return ret; @@ -5861,7 +5860,7 @@ libxlNodeDeviceReAttach(virNodeDevicePtr dev) libxlDriverPrivatePtr driver =3D dev->conn->privateData; virHostdevManagerPtr hostdev_mgr =3D driver->hostdevMgr; virConnectPtr nodeconn =3D NULL; - virNodeDevicePtr nodedev =3D NULL; + g_autoptr(virNodeDevice) nodedev =3D NULL; =20 if (!(nodeconn =3D virGetConnectNodeDev())) goto cleanup; @@ -5902,7 +5901,6 @@ libxlNodeDeviceReAttach(virNodeDevicePtr dev) cleanup: virPCIDeviceFree(pci); virNodeDeviceDefFree(def); - virObjectUnref(nodedev); virObjectUnref(nodeconn); VIR_FREE(xml); return ret; @@ -5919,7 +5917,7 @@ libxlNodeDeviceReset(virNodeDevicePtr dev) libxlDriverPrivatePtr driver =3D dev->conn->privateData; virHostdevManagerPtr hostdev_mgr =3D driver->hostdevMgr; virConnectPtr nodeconn =3D NULL; - virNodeDevicePtr nodedev =3D NULL; + g_autoptr(virNodeDevice) nodedev =3D NULL; =20 if (!(nodeconn =3D virGetConnectNodeDev())) goto cleanup; @@ -5960,7 +5958,6 @@ libxlNodeDeviceReset(virNodeDevicePtr dev) cleanup: virPCIDeviceFree(pci); virNodeDeviceDefFree(def); - virObjectUnref(nodedev); virObjectUnref(nodeconn); VIR_FREE(xml); return ret; diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 864158fd9d..bc28f65a3a 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -12963,7 +12963,7 @@ qemuNodeDeviceDetachFlags(virNodeDevicePtr dev, bool vfio =3D qemuHostdevHostSupportsPassthroughVFIO(); virHostdevManagerPtr hostdev_mgr =3D driver->hostdevMgr; virConnectPtr nodeconn =3D NULL; - virNodeDevicePtr nodedev =3D NULL; + g_autoptr(virNodeDevice) nodedev =3D NULL; =20 virCheckFlags(0, -1); =20 @@ -13024,7 +13024,6 @@ qemuNodeDeviceDetachFlags(virNodeDevicePtr dev, cleanup: virPCIDeviceFree(pci); virNodeDeviceDefFree(def); - virObjectUnref(nodedev); virObjectUnref(nodeconn); return ret; } @@ -13046,7 +13045,7 @@ qemuNodeDeviceReAttach(virNodeDevicePtr dev) g_autofree char *xml =3D NULL; virHostdevManagerPtr hostdev_mgr =3D driver->hostdevMgr; virConnectPtr nodeconn =3D NULL; - virNodeDevicePtr nodedev =3D NULL; + g_autoptr(virNodeDevice) nodedev =3D NULL; =20 if (!(nodeconn =3D virGetConnectNodeDev())) goto cleanup; @@ -13084,7 +13083,6 @@ qemuNodeDeviceReAttach(virNodeDevicePtr dev) virPCIDeviceFree(pci); cleanup: virNodeDeviceDefFree(def); - virObjectUnref(nodedev); virObjectUnref(nodeconn); return ret; } @@ -13100,7 +13098,7 @@ qemuNodeDeviceReset(virNodeDevicePtr dev) g_autofree char *xml =3D NULL; virHostdevManagerPtr hostdev_mgr =3D driver->hostdevMgr; virConnectPtr nodeconn =3D NULL; - virNodeDevicePtr nodedev =3D NULL; + g_autoptr(virNodeDevice) nodedev =3D NULL; =20 if (!(nodeconn =3D virGetConnectNodeDev())) goto cleanup; @@ -13138,7 +13136,6 @@ qemuNodeDeviceReset(virNodeDevicePtr dev) virPCIDeviceFree(pci); cleanup: virNodeDeviceDefFree(def); - virObjectUnref(nodedev); virObjectUnref(nodeconn); return ret; } diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index f5d7842104..a3f05563d4 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -5536,7 +5536,7 @@ remoteNodeDeviceBuildEventLifecycle(virNetClientProgr= amPtr prog G_GNUC_UNUSED, =20 event =3D virNodeDeviceEventLifecycleNew(dev->name, msg->event, msg->detail); - virObjectUnref(dev); + g_object_unref(dev); =20 virObjectEventStateQueueRemote(priv->eventState, event, msg->callbackI= D); } @@ -5557,7 +5557,7 @@ remoteNodeDeviceBuildEventUpdate(virNetClientProgramP= tr prog G_GNUC_UNUSED, return; =20 event =3D virNodeDeviceEventUpdateNew(dev->name); - virObjectUnref(dev); + g_object_unref(dev); =20 virObjectEventStateQueueRemote(priv->eventState, event, msg->callbackI= D); } diff --git a/src/rpc/gendispatch.pl b/src/rpc/gendispatch.pl index 0b2ae59910..3187a0b798 100755 --- a/src/rpc/gendispatch.pl +++ b/src/rpc/gendispatch.pl @@ -575,7 +575,7 @@ elsif ($mode eq "server") { " goto cleanup;\n"); push(@args_list, "dev"); push(@free_list, - " virObjectUnref(dev);"); + " g_object_unref(dev);"); } =20 foreach my $args_member (@{$call->{args_members}}) { diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 1696b956fe..5195ccbb61 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -7496,7 +7496,7 @@ testNodeDeviceCreateXML(virConnectPtr conn, cleanup: virNodeDeviceObjEndAPI(&obj); virNodeDeviceDefFree(def); - virObjectUnref(dev); + g_object_unref(dev); return ret; } =20 --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1585927049; cv=none; d=zohomail.com; s=zohoarc; b=N9zEYN55ju9MlAnX/iNrD7p30rvwwYO8xWhaFflaKzuzB06YfkuH7fBnxw/NjQ4nOxqFvDc18uL2K0XYOWBKqVGcTI1bFH1JeF8dUIIacT5zB3wIesmwUceTMTc0u34Gi8iH9aZaluVdKnVE//10BonpEQniQ0SxR6XTsupicPM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927049; 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=an90ZfyIGFNi9iJRefjLgES/U+fpWn04J8VslQkZ86o=; b=mAF3nK7PI9lZ11h0n7LDrjvXgprbcE/Mp7VqInjdwcLiVGCRPhjjxpKGKxxlgGXY8ZniCz6z2E5K+7NBIh5JsJME1kicAlOeHxh4QdeiLtkxyhp7AP2+OBFUAGHeRXWBcJfmgjz7Xkkx/ixPi3YWWr9qjQYss+V20HxeJuCxvoM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1585927049846503.72405748169433; Fri, 3 Apr 2020 08:17: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-405-g4_9t9yONgSLQgPQMPrXSg-1; Fri, 03 Apr 2020 11:17:25 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A99FD800D5B; Fri, 3 Apr 2020 15:17:17 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 820218EA1A; Fri, 3 Apr 2020 15:17: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 41FB34E467; Fri, 3 Apr 2020 15:17:17 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FH0Dq028350 for ; Fri, 3 Apr 2020 11:17:00 -0400 Received: by smtp.corp.redhat.com (Postfix) id AF02E123CD57; Fri, 3 Apr 2020 15:17:00 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A9C871250757 for ; Fri, 3 Apr 2020 15:16:57 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (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 1EB48185A78E for ; Fri, 3 Apr 2020 15:16:57 +0000 (UTC) Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-244-Ym7RUa2DMbqDyczjs_eIDw-1; Fri, 03 Apr 2020 11:16:54 -0400 Received: by mail-wm1-f45.google.com with SMTP id d77so7534846wmd.3 for ; Fri, 03 Apr 2020 08:16:54 -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.16.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927048; 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=an90ZfyIGFNi9iJRefjLgES/U+fpWn04J8VslQkZ86o=; b=is9snO7/oZYz4kIJTVA24Qy8pYOq1GENOjxCOcAbZolt8gPEs8aqa/3E/hmNsRu3BhDfuD 7Ed4vlRlGXu0ztCeSA5vwIU11zvDUyIzkoRqxTOa4YpEUdFYj7f7uCD8ArZqH9CkeDeUfO +SELC6kxKGY8U5NMLnXLL81UTKVCBHc= X-MC-Unique: g4_9t9yONgSLQgPQMPrXSg-1 X-MC-Unique: Ym7RUa2DMbqDyczjs_eIDw-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=S0C+/7pdUZPv2B6Gn4jKNTjPFvC3pdz7SI7ubMCdVbs=; b=T7XQKJQd26+96Gds1m8j8zv9lkXtj/gMpaULODIZ8z0eMNTaEejHhRguONObjxEQoY OUa3uNcbEySBt49y4153BBCN04wVyQ0X+pl2rGqOAK85cESII+ntudYdu+bsd2osfkLo X2DLwdXNObWGt7yprYhCb6ISweiPx/7vm4bicYGZ1RSpGLOhVvfbDVf3zAakXSTiGU9M 3z/pBPKQoj6t27i3KySZPa9gngHx0p3yVw/MW2kKmJbJfzPGHahxYLX3GVXuXOQi1JAJ gWM96qXo8ZyyDDVAllxsd0fNHkvUM4nuhHKvR6ENvuK5vmNJpvf1HYqwRdZMBvf1DTop XfJw== X-Gm-Message-State: AGi0PubQ8XX8y+BYP4CzZwqsV0/Lf/J/SkGROgvPF0gO7GrMz179UfsJ 6LTnPN1RukEQQS8fxlHBJkD0hAkmpz8= X-Google-Smtp-Source: APiQypLRoyMR2JKIMnUmtMitS0zuUe+cbZJTRlu3DKqaq07lUwVFPBb2rtrkeHA5+TH+XVwmv2uvfw== X-Received: by 2002:a1c:147:: with SMTP id 68mr9438985wmb.28.1585927013114; Fri, 03 Apr 2020 08:16:53 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 25/36] datatypes: convert virSecret to GObject Date: Fri, 3 Apr 2020 17:15:53 +0200 Message-Id: <20200403151604.106616-26-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.78 on 10.11.54.3 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FH0Dq028350 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.13 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/conf/secret_event.c | 9 ++---- src/conf/virsecretobj.c | 8 +++++- src/datatypes.c | 44 ++++++++++++++++++----------- src/datatypes.h | 14 +++++---- src/libvirt-secret.c | 7 ++--- src/libvirt_private.syms | 1 - src/remote/remote_daemon_dispatch.c | 4 +-- src/remote/remote_driver.c | 4 +-- src/storage/storage_util.c | 4 +-- src/util/virsecret.c | 3 +- 10 files changed, 54 insertions(+), 44 deletions(-) diff --git a/src/conf/secret_event.c b/src/conf/secret_event.c index 1c34dcfbc9..229f90c6c4 100644 --- a/src/conf/secret_event.c +++ b/src/conf/secret_event.c @@ -109,7 +109,7 @@ virSecretEventDispatchDefaultFunc(virConnectPtr conn, virConnectObjectEventGenericCallback cb, void *cbopaque) { - virSecretPtr secret =3D virGetSecret(conn, + g_autoptr(virSecret) secret =3D virGetSecret(conn, event->meta.uuid, event->meta.id, event->meta.name); @@ -127,23 +127,20 @@ virSecretEventDispatchDefaultFunc(virConnectPtr conn, secretLifecycleEv= ent->type, secretLifecycleEv= ent->detail, cbopaque); - goto cleanup; + return; } =20 case VIR_SECRET_EVENT_ID_VALUE_CHANGED: { ((virConnectSecretEventGenericCallback)cb)(conn, secret, cbopaque); - goto cleanup; + return; } =20 case VIR_SECRET_EVENT_ID_LAST: break; } VIR_WARN("Unexpected event ID %d", event->eventID); - - cleanup: - virObjectUnref(secret); } =20 =20 diff --git a/src/conf/virsecretobj.c b/src/conf/virsecretobj.c index 81c9f2c346..861c66bd03 100644 --- a/src/conf/virsecretobj.c +++ b/src/conf/virsecretobj.c @@ -611,7 +611,13 @@ virSecretObjListExport(virConnectPtr conn, return data.nsecrets; =20 error: - virObjectListFree(data.secrets); + if (data.secrets) { + while (data.nsecrets--) { + if (data.secrets[data.nsecrets]) + g_object_unref(data.secrets[data.nsecrets]); + } + VIR_FREE(data.secrets); + } return -1; } =20 diff --git a/src/datatypes.c b/src/datatypes.c index 43767b9fb5..4f2bca6e6d 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -36,13 +36,11 @@ VIR_LOG_INIT("datatypes"); virClassPtr virConnectClass; virClassPtr virConnectCloseCallbackDataClass; virClassPtr virDomainClass; -virClassPtr virSecretClass; virClassPtr virStreamClass; =20 static void virConnectDispose(void *obj); static void virConnectCloseCallbackDataDispose(void *obj); static void virDomainDispose(void *obj); -static void virSecretDispose(void *obj); static void virStreamDispose(void *obj); =20 G_DEFINE_TYPE(virDomainCheckpoint, vir_domain_checkpoint, G_TYPE_OBJECT); @@ -173,6 +171,22 @@ vir_nw_filter_binding_class_init(virNWFilterBindingCla= ss *klass) obj->finalize =3D virNWFilterBindingFinalize; } =20 +G_DEFINE_TYPE(virSecret, vir_secret, G_TYPE_OBJECT); +static void virSecretFinalize(GObject *obj); + +static void +vir_secret_init(virSecret *sec G_GNUC_UNUSED) +{ +} + +static void +vir_secret_class_init(virSecretClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virSecretFinalize; +} + G_DEFINE_TYPE(virStoragePool, vir_storage_pool, G_TYPE_OBJECT); static void virStoragePoolFinalize(GObject *obj); =20 @@ -257,7 +271,6 @@ virDataTypesOnceInit(void) DECLARE_CLASS_LOCKABLE(virConnect); DECLARE_CLASS_LOCKABLE(virConnectCloseCallbackData); DECLARE_CLASS(virDomain); - DECLARE_CLASS(virSecret); DECLARE_CLASS(virStream); =20 DECLARE_CLASS_LOCKABLE(virAdmConnect); @@ -862,7 +875,7 @@ virNodeDeviceFinalize(GObject *obj) * @uuid: secret UUID * * Allocates a new secret object. When the object is no longer needed, - * virObjectUnref() must be called in order to not leak data. + * g_object_unref() must be called in order to not leak data. * * Returns a pointer to the secret object, or NULL on error. */ @@ -870,16 +883,15 @@ virSecretPtr virGetSecret(virConnectPtr conn, const unsigned char *uuid, int usageType, const char *usageID) { - virSecretPtr ret =3D NULL; + g_autoptr(virSecret) ret =3D NULL; =20 if (virDataTypesInitialize() < 0) return NULL; =20 - virCheckConnectGoto(conn, error); - virCheckNonNullArgGoto(uuid, error); + virCheckConnectReturn(conn, NULL); + virCheckNonNullArgReturn(uuid, NULL); =20 - if (!(ret =3D virObjectNew(virSecretClass))) - return NULL; + ret =3D VIR_SECRET(g_object_new(VIR_TYPE_SECRET, NULL)); =20 memcpy(&(ret->uuid[0]), uuid, VIR_UUID_BUFLEN); ret->usageType =3D usageType; @@ -887,15 +899,11 @@ virGetSecret(virConnectPtr conn, const unsigned char = *uuid, =20 ret->conn =3D virObjectRef(conn); =20 - return ret; - - error: - virObjectUnref(ret); - return NULL; + return g_steal_pointer(&ret); } =20 /** - * virSecretDispose: + * virSecretFinalize: * @obj: the secret to release * * Unconditionally release all memory associated with a secret. @@ -905,9 +913,9 @@ virGetSecret(virConnectPtr conn, const unsigned char *u= uid, * which may also be released if its ref count hits zero. */ static void -virSecretDispose(void *obj) +virSecretFinalize(GObject *obj) { - virSecretPtr secret =3D obj; + virSecretPtr secret =3D VIR_SECRET(obj); char uuidstr[VIR_UUID_STRING_BUFLEN]; =20 virUUIDFormat(secret->uuid, uuidstr); @@ -915,6 +923,8 @@ virSecretDispose(void *obj) =20 VIR_FREE(secret->usageID); virObjectUnref(secret->conn); + + G_OBJECT_CLASS(vir_secret_parent_class)->finalize(obj); } =20 =20 diff --git a/src/datatypes.h b/src/datatypes.h index 3b9a31920b..4b0747f728 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -32,7 +32,6 @@ =20 extern virClassPtr virConnectClass; extern virClassPtr virDomainClass; -extern virClassPtr virSecretClass; extern virClassPtr virStreamClass; =20 =20 @@ -72,6 +71,9 @@ G_DECLARE_FINAL_TYPE(virNWFilterBinding, NW_FILTER_BINDING, GObject); =20 +#define VIR_TYPE_SECRET vir_secret_get_type() +G_DECLARE_FINAL_TYPE(virSecret, vir_secret, VIR, SECRET, GObject); + #define VIR_TYPE_STORAGE_POOL vir_storage_pool_get_type() G_DECLARE_FINAL_TYPE(virStoragePool, vir_storage_pool, VIR, STORAGE_POOL, = GObject); =20 @@ -278,8 +280,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckSecretReturn(obj, retval) \ do { \ - virSecretPtr _secret =3D (obj); \ - if (!virObjectIsClass(_secret, virSecretClass) || \ + virSecretPtr _secret =3D VIR_SECRET(obj); \ + if (!G_IS_OBJECT(_secret) || !(G_OBJECT_TYPE(_secret) =3D=3D VIR_T= YPE_SECRET) || \ !virObjectIsClass(_secret->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_SECRET, \ VIR_ERR_INVALID_SECRET, \ @@ -292,8 +294,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckSecretGoto(obj, label) \ do { \ - virSecretPtr _secret =3D (obj); \ - if (!virObjectIsClass(_secret, virSecretClass) || \ + virSecretPtr _secret =3D VIR_SECRET(obj); \ + if (!G_IS_OBJECT(_secret) || !(G_OBJECT_TYPE(_secret) =3D=3D VIR_T= YPE_SECRET) || \ !virObjectIsClass(_secret->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_SECRET, \ VIR_ERR_INVALID_SECRET, \ @@ -745,7 +747,7 @@ struct _virNodeDevice { * Internal structure associated with a secret */ struct _virSecret { - virObject parent; + GObject parent; virConnectPtr conn; /* pointer back to the connection= */ unsigned char uuid[VIR_UUID_BUFLEN]; /* the secret unique identifier */ int usageType; /* the type of usage */ diff --git a/src/libvirt-secret.c b/src/libvirt-secret.c index 33cbdd7b0b..4248536a5b 100644 --- a/src/libvirt-secret.c +++ b/src/libvirt-secret.c @@ -658,14 +658,13 @@ virSecretUndefine(virSecretPtr secret) int virSecretRef(virSecretPtr secret) { - VIR_DEBUG("secret=3D%p refs=3D%d", secret, - secret ? secret->parent.u.s.refs : 0); + VIR_DEBUG("secret=3D%p", secret); =20 virResetLastError(); =20 virCheckSecretReturn(secret, -1); =20 - virObjectRef(secret); + g_object_ref(secret); return 0; } =20 @@ -687,7 +686,7 @@ virSecretFree(virSecretPtr secret) =20 virCheckSecretReturn(secret, -1); =20 - virObjectUnref(secret); + g_object_unref(secret); return 0; } =20 diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index f2187b7cce..b66c3623f6 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1365,7 +1365,6 @@ virGetStoragePool; virGetStorageVol; virGetStream; virNewConnectCloseCallbackData; -virSecretClass; virStreamClass; =20 =20 diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon= _dispatch.c index 9f367bc515..a2dd0415b3 100644 --- a/src/remote/remote_daemon_dispatch.c +++ b/src/remote/remote_daemon_dispatch.c @@ -4406,7 +4406,7 @@ remoteDispatchSecretGetValue(virNetServerPtr server G= _GNUC_UNUSED, cleanup: if (rv < 0) virNetMessageSaveError(rerr); - virObjectUnref(secret); + g_object_unref(secret); return rv; } =20 @@ -6436,7 +6436,7 @@ remoteDispatchConnectSecretEventRegisterAny(virNetSer= verPtr server G_GNUC_UNUSED remoteEventCallbackFree(callback); if (rv < 0) virNetMessageSaveError(rerr); - virObjectUnref(secret); + g_object_unref(secret); return rv; } =20 diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index a3f05563d4..65c2b92f1e 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -5579,7 +5579,7 @@ remoteSecretBuildEventLifecycle(virNetClientProgramPt= r prog G_GNUC_UNUSED, =20 event =3D virSecretEventLifecycleNew(secret->uuid, secret->usageType, = secret->usageID, msg->event, msg->detail); - virObjectUnref(secret); + g_object_unref(secret); =20 virObjectEventStateQueueRemote(priv->eventState, event, msg->callbackI= D); } @@ -5600,7 +5600,7 @@ remoteSecretBuildEventValueChanged(virNetClientProgra= mPtr prog G_GNUC_UNUSED, return; =20 event =3D virSecretEventValueChangedNew(secret->uuid, secret->usageTyp= e, secret->usageID); - virObjectUnref(secret); + g_object_unref(secret); =20 virObjectEventStateQueueRemote(priv->eventState, event, msg->callbackI= D); } diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index 1ec1d13625..7e3bfd1393 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -2172,7 +2172,7 @@ virStorageBackendVolDeleteLocal(virStoragePoolObjPtr = pool G_GNUC_UNUSED, static int storageBackendLoadDefaultSecrets(virStorageVolDefPtr vol) { - virSecretPtr sec; + g_autoptr(virSecret) sec =3D NULL; virStorageEncryptionSecretPtr encsec =3D NULL; virConnectPtr conn =3D NULL; =20 @@ -2199,7 +2199,6 @@ storageBackendLoadDefaultSecrets(virStorageVolDefPtr = vol) if (VIR_ALLOC_N(vol->target.encryption->secrets, 1) < 0 || VIR_ALLOC(encsec) < 0) { VIR_FREE(vol->target.encryption->secrets); - virObjectUnref(sec); return -1; } =20 @@ -2209,7 +2208,6 @@ storageBackendLoadDefaultSecrets(virStorageVolDefPtr = vol) encsec->type =3D VIR_STORAGE_ENCRYPTION_SECRET_TYPE_PASSPHRASE; encsec->seclookupdef.type =3D VIR_SECRET_LOOKUP_TYPE_UUID; virSecretGetUUID(sec, encsec->seclookupdef.u.uuid); - virObjectUnref(sec); =20 return 0; } diff --git a/src/util/virsecret.c b/src/util/virsecret.c index 54d6bbcb7c..7279d22683 100644 --- a/src/util/virsecret.c +++ b/src/util/virsecret.c @@ -147,7 +147,7 @@ virSecretGetSecretString(virConnectPtr conn, uint8_t **secret, size_t *secret_size) { - virSecretPtr sec =3D NULL; + g_autoptr(virSecret) sec =3D NULL; int ret =3D -1; =20 switch (seclookupdef->type) { @@ -190,6 +190,5 @@ virSecretGetSecretString(virConnectPtr conn, ret =3D 0; =20 cleanup: - virObjectUnref(sec); return ret; } --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927038; cv=none; d=zohomail.com; s=zohoarc; b=hGxT886sFpMjXfvYZV6ABtoLNsKvly8z/NcQPy9SuEuagzmM1JLzGaHbpI2YiywgAfCPiIEOMiJOV9F291tbty2jIrN8PNRyzjLrZuU7wU/fabK5X2HVRGo1fWQhN73FkIT2qYQ6f4xefd4ecDAx6ocJJ/kaOhwF5Md99T1Zriw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927038; 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=VUZFWbcp7Fjogm5OS6mSWfq87ABXVz/YuMyDaqVERNA=; b=IVPJue0mNyP0U5Sgm/Uo3dxTgwHLdSjV4HTuVrSDpVH6MZwTntruC/wjYugK6D4xnY2lPmMC2geIXwZ30TUYUuYakv5F/JOXJZ1RxhaXxWC0gqrHvJItyeFeFzz2ElYcfHItqeyGJ89xV7bem3H/OIr+BaEt/CexVn0f/1xFfLQ= 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 1585927038404798.0839115209993; Fri, 3 Apr 2020 08:17:18 -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-282-CsLRgGNBPnyBXQQ3F_HSJQ-1; Fri, 03 Apr 2020 11:17:14 -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 7BA258024D2; Fri, 3 Apr 2020 15:17:07 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4C82B60BF3; Fri, 3 Apr 2020 15:17:07 +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 047EC4E476; Fri, 3 Apr 2020 15:17:07 +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 033FH1hK028359 for ; Fri, 3 Apr 2020 11:17:01 -0400 Received: by smtp.corp.redhat.com (Postfix) id 1711513CCA0; Fri, 3 Apr 2020 15:17:01 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1321B13CCA8 for ; Fri, 3 Apr 2020 15:16:58 +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 98DCA101A55E for ; Fri, 3 Apr 2020 15:16:58 +0000 (UTC) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-165-w9oEb9e9OxqhAYsqwxpM4Q-1; Fri, 03 Apr 2020 11:16:56 -0400 Received: by mail-wm1-f42.google.com with SMTP id i19so8149173wmb.0 for ; Fri, 03 Apr 2020 08:16:55 -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.16.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927037; 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=VUZFWbcp7Fjogm5OS6mSWfq87ABXVz/YuMyDaqVERNA=; b=IgMjRL7iWPfWo1T0+RJs73nCTUjELt/TCxtY36RLAkE9cJJBh3QOkQ+nAMGKIXcrSU5FGc zfQGx9/P7jcJ6nfHTgc/ucRnG4NASiA8fDO2yHnPcW9h2bKB6K78bQYsGosUwF+QKP7ifE qg6up8wO8Bet0QJdd7GprMMzJT0qmJw= X-MC-Unique: CsLRgGNBPnyBXQQ3F_HSJQ-1 X-MC-Unique: w9oEb9e9OxqhAYsqwxpM4Q-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=f25RzMDVsv+6E4Ofnoak8Xw2asq6MEtu+EELtJs+re0=; b=ts4MiO3GGZZY3epzmM7ocmyl2nFo5OwnFjIy/1y546uySyXXjbGIVxKp5wQNmisup5 RdAPzzycudsQVhJ/fRqc5YOtCLxbA7sP4cjBK/tjwJp2EbpOPnqsY6S5C0yEKc295uTJ L2Hk34J6Nnmutom+z6Lc3+dG2GU6Z0yP//g/yio8do6uIKhy4GSToUgGO0k9t85MRcYG icSzMsgoUCG5i724PsKdeOLSqfCNS+8YEKBoi2MGDdFuup67TeKY9ARNEqPduC/eHzi2 KZjjdCsT5ea6UulzK2SwkolRWufg4OtbPPXs8P1sISF3q5IgO7G68gebNckwlRLYToKR B+mg== X-Gm-Message-State: AGi0PuaJy7gdN9DKm4kVc6h0ss11iXUfxC61IE5l7nWYl8RdVIoO1JDD SUSkB4HavajTjr4wWceDct3tbCbOr7c= X-Google-Smtp-Source: APiQypJQG438mcA4LPVokV7+1c/lxsNDO+iof9OQZFY+Hdt7Kzwjov2g+fjKocNjQ8x8YAooSymk6A== X-Received: by 2002:a1c:1942:: with SMTP id 63mr9665071wmz.133.1585927014462; Fri, 03 Apr 2020 08:16:54 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 26/36] datatypes: convert virStream to GObject Date: Fri, 3 Apr 2020 17:15:54 +0200 Message-Id: <20200403151604.106616-27-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 033FH1hK028359 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/conf/virchrdev.c | 5 +++-- src/datatypes.c | 32 +++++++++++++++++++++-------- src/datatypes.h | 15 +++++++------- src/libvirt-stream.c | 7 +++---- src/libvirt_private.syms | 1 - src/libxl/libxl_migration.c | 2 +- src/qemu/qemu_migration.c | 6 ++---- src/remote/remote_daemon_dispatch.c | 2 +- src/remote/remote_daemon_stream.c | 3 ++- src/remote/remote_driver.c | 3 ++- src/rpc/gendispatch.pl | 2 +- src/util/virfdstream.c | 5 +++-- 12 files changed, 49 insertions(+), 34 deletions(-) diff --git a/src/conf/virchrdev.c b/src/conf/virchrdev.c index 800e82869e..2338d40c39 100644 --- a/src/conf/virchrdev.c +++ b/src/conf/virchrdev.c @@ -205,7 +205,8 @@ static void virChrdevHashEntryFree(void *data) return; =20 /* free stream reference */ - virObjectUnref(ent->st); + if (ent->st) + g_object_unref(ent->st); =20 /* delete lock file */ virChrdevLockFileRemove(ent->dev); @@ -435,7 +436,7 @@ int virChrdevOpen(virChrdevsPtr devs, if (added) virHashRemoveEntry(devs->hash, path); else - virObjectUnref(st); + g_object_unref(st); =20 if (cbdata) VIR_FREE(cbdata->path); diff --git a/src/datatypes.c b/src/datatypes.c index 4f2bca6e6d..8cf9e0c51b 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -36,12 +36,10 @@ VIR_LOG_INIT("datatypes"); virClassPtr virConnectClass; virClassPtr virConnectCloseCallbackDataClass; virClassPtr virDomainClass; -virClassPtr virStreamClass; =20 static void virConnectDispose(void *obj); static void virConnectCloseCallbackDataDispose(void *obj); static void virDomainDispose(void *obj); -static void virStreamDispose(void *obj); =20 G_DEFINE_TYPE(virDomainCheckpoint, vir_domain_checkpoint, G_TYPE_OBJECT); static void virDomainCheckpointFinalize(GObject *obj); @@ -219,6 +217,22 @@ vir_storage_vol_class_init(virStorageVolClass *klass) obj->finalize =3D virStorageVolFinalize; } =20 +G_DEFINE_TYPE(virStream, vir_stream, G_TYPE_OBJECT); +static void virStreamFinalize(GObject *obj); + +static void +vir_stream_init(virStream *strm G_GNUC_UNUSED) +{ +} + +static void +vir_stream_class_init(virStreamClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virStreamFinalize; +} + virClassPtr virAdmConnectClass; virClassPtr virAdmConnectCloseCallbackDataClass; =20 @@ -271,7 +285,6 @@ virDataTypesOnceInit(void) DECLARE_CLASS_LOCKABLE(virConnect); DECLARE_CLASS_LOCKABLE(virConnectCloseCallbackData); DECLARE_CLASS(virDomain); - DECLARE_CLASS(virStream); =20 DECLARE_CLASS_LOCKABLE(virAdmConnect); DECLARE_CLASS_LOCKABLE(virAdmConnectCloseCallbackData); @@ -933,7 +946,7 @@ virSecretFinalize(GObject *obj) * @conn: the hypervisor connection * * Allocates a new stream object. When the object is no longer needed, - * virObjectUnref() must be called in order to not leak data. + * g_object_unref() must be called in order to not leak data. * * Returns a pointer to the stream object, or NULL on error. */ @@ -945,8 +958,7 @@ virGetStream(virConnectPtr conn) if (virDataTypesInitialize() < 0) return NULL; =20 - if (!(ret =3D virObjectNew(virStreamClass))) - return NULL; + ret =3D VIR_STREAM(g_object_new(VIR_TYPE_STREAM, NULL)); =20 ret->conn =3D virObjectRef(conn); =20 @@ -954,7 +966,7 @@ virGetStream(virConnectPtr conn) } =20 /** - * virStreamDispose: + * virStreamFinalize: * @obj: the stream to release * * Unconditionally release all memory associated with a stream. @@ -964,14 +976,16 @@ virGetStream(virConnectPtr conn) * which may also be released if its ref count hits zero. */ static void -virStreamDispose(void *obj) +virStreamFinalize(GObject *obj) { - virStreamPtr st =3D obj; + virStreamPtr st =3D VIR_STREAM(obj); VIR_DEBUG("release dev %p", st); =20 if (st->ff) st->ff(st->privateData); virObjectUnref(st->conn); + + G_OBJECT_CLASS(vir_stream_parent_class)->finalize(obj); } =20 =20 diff --git a/src/datatypes.h b/src/datatypes.h index 4b0747f728..759e5487c3 100644 --- a/src/datatypes.h +++ b/src/datatypes.h @@ -32,8 +32,6 @@ =20 extern virClassPtr virConnectClass; extern virClassPtr virDomainClass; -extern virClassPtr virStreamClass; - =20 #define VIR_TYPE_DOMAIN_CHECKPOINT vir_domain_checkpoint_get_type() G_DECLARE_FINAL_TYPE(virDomainCheckpoint, @@ -80,6 +78,9 @@ G_DECLARE_FINAL_TYPE(virStoragePool, vir_storage_pool, VI= R, STORAGE_POOL, GObjec #define VIR_TYPE_STORAGE_VOL vir_storage_vol_get_type() G_DECLARE_FINAL_TYPE(virStorageVol, vir_storage_vol, VIR, STORAGE_VOL, GOb= ject); =20 +#define VIR_TYPE_STREAM vir_stream_get_type() +G_DECLARE_FINAL_TYPE(virStream, vir_stream, VIR, STREAM, GObject); + extern virClassPtr virAdmConnectClass; =20 #define VIR_TYPE_ADM_SERVER vir_adm_server_get_type() @@ -308,8 +309,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); =20 #define virCheckStreamReturn(obj, retval) \ do { \ - virStreamPtr _st =3D (obj); \ - if (!virObjectIsClass(_st, virStreamClass) || \ + virStreamPtr _st =3D VIR_STREAM(obj); \ + if (!G_IS_OBJECT(_st) || !(G_OBJECT_TYPE(_st) =3D=3D VIR_TYPE_STRE= AM) || \ !virObjectIsClass(_st->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_STREAMS, \ VIR_ERR_INVALID_STREAM, \ @@ -321,8 +322,8 @@ G_DECLARE_FINAL_TYPE(virAdmClient, vir_adm_client, VIR,= ADM_CLIENT, GObject); } while (0) #define virCheckStreamGoto(obj, label) \ do { \ - virStreamPtr _st =3D (obj); \ - if (!virObjectIsClass(_st, virStreamClass) || \ + virStreamPtr _st =3D VIR_STREAM(obj); \ + if (!G_IS_OBJECT(_st) || !(G_OBJECT_TYPE(_st) =3D=3D VIR_TYPE_STRE= AM) || \ !virObjectIsClass(_st->conn, virConnectClass)) { \ virReportErrorHelper(VIR_FROM_STREAMS, \ VIR_ERR_INVALID_STREAM, \ @@ -764,7 +765,7 @@ typedef int (*virStreamFinishFunc)(virStreamPtr, void *= opaque); * Internal structure associated with an input stream */ struct _virStream { - virObject parent; + GObject parent; virConnectPtr conn; unsigned int flags; =20 diff --git a/src/libvirt-stream.c b/src/libvirt-stream.c index 6f6bb5df0b..95d975b61b 100644 --- a/src/libvirt-stream.c +++ b/src/libvirt-stream.c @@ -85,14 +85,13 @@ virStreamNew(virConnectPtr conn, int virStreamRef(virStreamPtr stream) { - VIR_DEBUG("stream=3D%p refs=3D%d", stream, - stream ? stream->parent.u.s.refs : 0); + VIR_DEBUG("stream=3D%p", stream); =20 virResetLastError(); =20 virCheckStreamReturn(stream, -1); =20 - virObjectRef(stream); + g_object_ref(stream); return 0; } =20 @@ -1273,6 +1272,6 @@ virStreamFree(virStreamPtr stream) =20 /* XXX Enforce shutdown before free'ing resources ? */ =20 - virObjectUnref(stream); + g_object_unref(stream); return 0; } diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index b66c3623f6..86331a97bc 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1365,7 +1365,6 @@ virGetStoragePool; virGetStorageVol; virGetStream; virNewConnectCloseCallbackData; -virStreamClass; =20 =20 # driver.h diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index defdda5ed6..ac462aaf3f 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -1110,7 +1110,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivatePtr driver, cleanup: if (flags & VIR_MIGRATE_TUNNELLED) { libxlMigrationSrcStopTunnel(tc); - virObjectUnref(st); + g_object_unref(st); } =20 if (ddomain) { diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 07e137e2c9..13ff06f5c7 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -4000,7 +4000,7 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriverPtr dr= iver, int cookielen =3D 0, ret; virErrorPtr orig_err =3D NULL; bool cancelled; - virStreamPtr st =3D NULL; + g_autoptr(virStream) st =3D NULL; unsigned long destflags; =20 VIR_DEBUG("driver=3D%p, sconn=3D%p, dconn=3D%p, vm=3D%p, dconnuri=3D%s= , " @@ -4109,7 +4109,6 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriverPtr dr= iver, ret =3D -1; } =20 - virObjectUnref(st); =20 virErrorRestore(&orig_err); VIR_FREE(uri_out); @@ -4153,7 +4152,7 @@ qemuMigrationSrcPerformPeer2Peer3(virQEMUDriverPtr dr= iver, int ret =3D -1; virErrorPtr orig_err =3D NULL; bool cancelled =3D true; - virStreamPtr st =3D NULL; + g_autoptr(virStream) st =3D NULL; unsigned long destflags; virTypedParameterPtr params =3D NULL; int nparams =3D 0; @@ -4446,7 +4445,6 @@ qemuMigrationSrcPerformPeer2Peer3(virQEMUDriverPtr dr= iver, ret =3D -1; } =20 - virObjectUnref(st); =20 virErrorRestore(&orig_err); VIR_FREE(uri_out); diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon= _dispatch.c index a2dd0415b3..f3bbfbea32 100644 --- a/src/remote/remote_daemon_dispatch.c +++ b/src/remote/remote_daemon_dispatch.c @@ -5690,7 +5690,7 @@ remoteDispatchDomainMigratePrepareTunnel3Params(virNe= tServerPtr server G_GNUC_UN virStreamAbort(st); daemonFreeClientStream(client, stream); } else { - virObjectUnref(st); + g_object_unref(st); } } return rv; diff --git a/src/remote/remote_daemon_stream.c b/src/remote/remote_daemon_s= tream.c index ec9667fe56..cc11f88688 100644 --- a/src/remote/remote_daemon_stream.c +++ b/src/remote/remote_daemon_stream.c @@ -420,7 +420,8 @@ int daemonFreeClientStream(virNetServerClientPtr client, msg =3D tmp; } =20 - virObjectUnref(stream->st); + if (stream->st) + g_object_unref(stream->st); VIR_FREE(stream); =20 return ret; diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 65c2b92f1e..bb04db9aa7 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -5836,7 +5836,8 @@ static void remoteStreamCallbackFree(void *opaque) if (!cbdata->cb && cbdata->ff) (cbdata->ff)(cbdata->opaque); =20 - virObjectUnref(cbdata->st); + if (cbdata->st) + g_object_unref(cbdata->st); VIR_FREE(opaque); } =20 diff --git a/src/rpc/gendispatch.pl b/src/rpc/gendispatch.pl index 3187a0b798..0d0cce551a 100755 --- a/src/rpc/gendispatch.pl +++ b/src/rpc/gendispatch.pl @@ -1026,7 +1026,7 @@ elsif ($mode eq "server") { push(@free_list_on_error, " virStreamAbort(st);"); push(@free_list_on_error, " daemonFreeClientStream(client, = stream);"); push(@free_list_on_error, "} else {"); - push(@free_list_on_error, " virObjectUnref(st);"); + push(@free_list_on_error, " g_object_unref(st);"); push(@free_list_on_error, "}"); } =20 diff --git a/src/util/virfdstream.c b/src/util/virfdstream.c index 111e451f8c..013b6dd1f5 100644 --- a/src/util/virfdstream.c +++ b/src/util/virfdstream.c @@ -407,7 +407,8 @@ virFDStreamThreadDataFree(virFDStreamThreadDataPtr data) if (!data) return; =20 - virObjectUnref(data->st); + if (data->st) + g_object_unref(data->st); VIR_FREE(data->fdinname); VIR_FREE(data->fdoutname); VIR_FREE(data); @@ -1282,7 +1283,7 @@ virFDStreamOpenFileInternal(virStreamPtr st, if (VIR_ALLOC(threadData) < 0) goto error; =20 - threadData->st =3D virObjectRef(st); + threadData->st =3D g_object_ref(st); threadData->length =3D length; threadData->sparse =3D sparse; =20 --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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=1585927045; cv=none; d=zohomail.com; s=zohoarc; b=f+0L8LlHceHYG5QOaVzF4J1cNgXe3LhjXwuaWF4a69VYlLkC/4a6PpbMQ6kgWwnrqrBvYdzcE8r5tn8KKMvzrr6he1+X7NtpEYIRGadAUmUBs11xR+R1Y7SlSmLstb2sCj2iqCfxkMIcctCO3HvK6EyccKj+UqzXz0nYQrVRNzg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927045; 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=qt/EIu4WmpHQ5Cc4p26D0XU/KM/1C7M6gHhGLA72Jjc=; b=khdrgGkmlxFDJ1HitiFqciIzU0LQr+fhGZpo4uzSXcI6T5ULxSLdEPL3CPMkXoeKdLfyBiW+pzg6klF6frTgBfvyVX61Bmm4tLaQpb5tFsxhVgT0mW4AucjmKGma6Px1LaqU7/Xx5ya+l+AHL+ukezMfWJgn6h2Hv1epy32gskw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 1585927045708307.490937450754; Fri, 3 Apr 2020 08:17:25 -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-24-BPF1LnNyM1KrHYQ7HAgw6g-1; Fri, 03 Apr 2020 11:17:21 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3B7D4149C9; Fri, 3 Apr 2020 15:17:14 +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 0C4A896B9B; Fri, 3 Apr 2020 15:17:14 +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 B5201180350A; Fri, 3 Apr 2020 15:17:13 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FH0DZ028349 for ; Fri, 3 Apr 2020 11:17:00 -0400 Received: by smtp.corp.redhat.com (Postfix) id AEFE5123CD4F; Fri, 3 Apr 2020 15:17:00 +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 AA8EC1256D4E for ; Fri, 3 Apr 2020 15:17:00 +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 E39848EFB42 for ; Fri, 3 Apr 2020 15:16:59 +0000 (UTC) Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-351-yCJCPdShMwuH4xtNDYyfDw-1; Fri, 03 Apr 2020 11:16:57 -0400 Received: by mail-wm1-f48.google.com with SMTP id a81so8094087wmf.5 for ; Fri, 03 Apr 2020 08:16:57 -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.16.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927044; 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=qt/EIu4WmpHQ5Cc4p26D0XU/KM/1C7M6gHhGLA72Jjc=; b=fxGwDBuFmOB+tBGFC7g5ivX9rnHQOaVWWg5ZJTM1/MODUWCVWFs6QE85a+TS8Ljxdg5Bwe v6jT2t7ArCgitZsqkJUIrUTGNvC8X6sx27wcMhi+cXIgJ+kTfWjb7I7cS8eq40ZHKJ+0yj Bo+CqLlInZXZdNySTur/jNsFQFvQgNs= X-MC-Unique: BPF1LnNyM1KrHYQ7HAgw6g-1 X-MC-Unique: yCJCPdShMwuH4xtNDYyfDw-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=1CAbyWXNi/vO1iydMNbRxZpcK4433aOxfyhN6sspghs=; b=NLlBYDmxYkWj+qhDqGJhXAjlnp46OKb6TsBJ5dWILXcidUptxiJ5qfpG8LcIJYL5Iq WZgdcq/hb3ewGXRtr/4JcDTVZSfbKHDhlMdMFMhBiJFyX8ssT7NTJ+Ju/YwrIPlxx8Ck UrieSydiuavnYV5YcslhUbljzJeE9f0CsbA/OgmgJPoMo8rGiWYbNms3Kd8fXcxpyYGz bGgvA2WQ7qaPgV5A4ZGl023i1qCtxxydIzg7pI4hclMGgNdujWDbgcMCbdiUEu8nGfdg DzsDKkmVPHUUcQ94DzI3FT0b3l/bdPVTHkPmFawzaq+hpqnCIJGXl7lBoQd9RbwKLu8g /KHQ== X-Gm-Message-State: AGi0Pub0r1aome3r4zLY8mKemGaoDIBQAwFP0z9wWeAhO2VYWaCnhhfS 72ncBmGTKteedI+quqZWN/6FUNBOmKk= X-Google-Smtp-Source: APiQypKy2j5FNpZ9l8m0pososluXAbFKx+ntKZBD8CNDi3IGbUXsHm3siUDEq4h+uLt4z0ar6ThWHQ== X-Received: by 2002:a1c:99d3:: with SMTP id b202mr9521167wme.170.1585927016095; Fri, 03 Apr 2020 08:16:56 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 27/36] conf: convert virNetworkXMLOption to GObject Date: Fri, 3 Apr 2020 17:15:55 +0200 Message-Id: <20200403151604.106616-28-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.78 on 10.11.54.3 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FH0DZ028349 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.15 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/conf/network_conf.c | 31 ++++++++++++++----------------- src/conf/network_conf.h | 12 +++++++++--- src/network/bridge_driver.c | 2 +- tests/networkxml2xmltest.c | 3 +-- 4 files changed, 25 insertions(+), 23 deletions(-) diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index 819b645df7..c56dc95688 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -70,35 +70,32 @@ VIR_ENUM_IMPL(virNetworkTaint, "hook-script", ); =20 -static virClassPtr virNetworkXMLOptionClass; +G_DEFINE_TYPE(virNetworkXMLOption, vir_network_xml_option, G_TYPE_OBJECT); =20 static void -virNetworkXMLOptionDispose(void *obj G_GNUC_UNUSED) +virNetworkXMLOptionFinalize(GObject *obj) { - return; + G_OBJECT_CLASS(vir_network_xml_option_parent_class)->finalize(obj); } =20 -static int -virNetworkXMLOnceInit(void) +static void +vir_network_xml_option_init(virNetworkXMLOption *xmlopt G_GNUC_UNUSED) { - if (!VIR_CLASS_NEW(virNetworkXMLOption, virClassForObject())) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(virNetworkXML); +static void +vir_network_xml_option_class_init(virNetworkXMLOptionClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virNetworkXMLOptionFinalize; +} =20 virNetworkXMLOptionPtr virNetworkXMLOptionNew(virXMLNamespacePtr xmlns) { - virNetworkXMLOptionPtr xmlopt; - - if (virNetworkXMLInitialize() < 0) - return NULL; - - if (!(xmlopt =3D virObjectNew(virNetworkXMLOptionClass))) - return NULL; + virNetworkXMLOptionPtr xmlopt =3D + VIR_NETWORK_XML_OPTION(g_object_new(VIR_TYPE_NETWORK_XML_OPTION, N= ULL)); =20 if (xmlns) xmlopt->ns =3D *xmlns; diff --git a/src/conf/network_conf.h b/src/conf/network_conf.h index db7243eef5..e492ca9c6f 100644 --- a/src/conf/network_conf.h +++ b/src/conf/network_conf.h @@ -33,17 +33,23 @@ #include "device_conf.h" #include "virbitmap.h" #include "networkcommon_conf.h" -#include "virobject.h" #include "virmacmap.h" #include "virenum.h" #include "virxml.h" +#include =20 struct _virNetworkXMLOption { - virObject parent; + GObject parent; =20 virXMLNamespace ns; }; -typedef struct _virNetworkXMLOption virNetworkXMLOption; + +#define VIR_TYPE_NETWORK_XML_OPTION vir_network_xml_option_get_type() +G_DECLARE_FINAL_TYPE(virNetworkXMLOption, + vir_network_xml_option, + VIR, + NETWORK_XML_OPTION, + GObject); typedef virNetworkXMLOption *virNetworkXMLOptionPtr; =20 =20 diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 6148bf6a7e..77b5aafb60 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -889,7 +889,7 @@ networkStateCleanup(void) return -1; =20 virObjectUnref(network_driver->networkEventState); - virObjectUnref(network_driver->xmlopt); + g_object_unref(network_driver->xmlopt); =20 /* free inactive networks */ virObjectUnref(network_driver->networks); diff --git a/tests/networkxml2xmltest.c b/tests/networkxml2xmltest.c index ec679e72ee..b881e03c3b 100644 --- a/tests/networkxml2xmltest.c +++ b/tests/networkxml2xmltest.c @@ -30,7 +30,7 @@ testCompareXMLToXMLFiles(const char *inxml, const char *o= utxml, int ret; testCompareNetXML2XMLResult result =3D TEST_COMPARE_NET_XML2XML_RESULT= _SUCCESS; virNetworkDefPtr dev =3D NULL; - virNetworkXMLOptionPtr xmlopt =3D NULL; + g_autoptr(virNetworkXMLOption) xmlopt =3D NULL; =20 if (!(xmlopt =3D networkDnsmasqCreateXMLConf())) goto cleanup; @@ -72,7 +72,6 @@ testCompareXMLToXMLFiles(const char *inxml, const char *o= utxml, =20 VIR_FREE(actual); virNetworkDefFree(dev); - virObjectUnref(xmlopt); return ret; } =20 --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1585927060; cv=none; d=zohomail.com; s=zohoarc; b=WJxtv/V3A9a63bgFHe0ex/4cLeLYLuAu/pFveOTFSJ7pX8QC6brOSr56qyWfQDgGG70dKy3joiiaFPT56TIiacjnwrGtJwwkMZ00MLBNdzZiyUuZPb2Pv4IwvX1YEwBtSObFBHRuzffmp9JKHhOl4fbtGByWSts/C7GBHU79NS4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927060; 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=KPCC3wYZOug7Lj8jaKpFWmfTnoi1sSGY+l/geIYDHJo=; b=YAvbN1dhXzzyxnv0tERKMB8IojLNGLgwk04ips6TbB4eVOAk/dn57LD9GxPxvqjleOoCJpfz1ixzlnL8gyGSkwPEQaCVtJW7XlWQVqqkvfSYpTMyJyBEvWTMKpJLt2RIuEc5Pslz3SlRB5zGYgBVJa4x0HnPQYsyIkPokvPgobI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1585927060846402.6523086520399; Fri, 3 Apr 2020 08:17:40 -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-259-o9hGpkocM9iLTDUqdjdtJA-1; Fri, 03 Apr 2020 11:17:35 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 53B698024DC; Fri, 3 Apr 2020 15:17:22 +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 2748F1147D7; Fri, 3 Apr 2020 15:17:22 +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 B834518033AF; Fri, 3 Apr 2020 15:17:21 +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 033FH1aS028365 for ; Fri, 3 Apr 2020 11:17:01 -0400 Received: by smtp.corp.redhat.com (Postfix) id AE15D2022EB3; Fri, 3 Apr 2020 15:17:01 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A9D352022EB2 for ; Fri, 3 Apr 2020 15:17:01 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (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 875A6185A791 for ; Fri, 3 Apr 2020 15:17:01 +0000 (UTC) Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-295-JIkQ1c-2Ms6s9i8qkmbdUQ-1; Fri, 03 Apr 2020 11:16:59 -0400 Received: by mail-wr1-f67.google.com with SMTP id j17so8886022wru.13 for ; Fri, 03 Apr 2020 08:16:59 -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.16.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927059; 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=KPCC3wYZOug7Lj8jaKpFWmfTnoi1sSGY+l/geIYDHJo=; b=L3kyGhdMthoOAOxna7EWsvcJbMzKDAMf1ZB26TsXYx00RQBcSUasILGM3dJLuc6ski3ptt rInClAFY6Wnm3sXU7ViSrZ66Mq+4WGb0RYz7gDYTcSzrC5LtMJGbuSBWsiWkjjo6rwmChV W3TbQ4nnqBIGHbvaaMNcw2D96UCNJPM= X-MC-Unique: o9hGpkocM9iLTDUqdjdtJA-1 X-MC-Unique: JIkQ1c-2Ms6s9i8qkmbdUQ-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=eZZlway8adPjmJfNaYehQfz0nl7ahNu0JRu66RRd+j4=; b=kzxMLtg1C0e06zgVat/eCGD0yk9RjvBu/YXMIgZsxJhvP/ug9psDTCI9zOGd5ZaDmb IwNQcuhoVwm4acqm2T37hXzsubRenSSvdPxK8yaXZ5ywDINB17Apj+VMuoRavO23i+EJ RgQvd2YIBzQs6E/L2d/kNucMJ6O4Ss15dfJWHCRCkd75v0oRy5GwyjB9Q4HOuIxT6xQ4 nsz6qwU6js/QIeFnaIoIkmLyV7WOzDciVxE7avXI2yF3fssbyWCFCsIqQzMFBfO45DPT BV4/p6hv9bYJB6L5S0hJfjLCkUaw0YmcGEemE8SVLACyTGUGWOUQc2mThlZis1eZmFGc KXLQ== X-Gm-Message-State: AGi0Puac1cUB2o2b7jgiYURvA2k2jLqK8bZ18JSkJ3PHF0dbIfc0Sm1i WB8h1SxGsGsxLXsTw0jq0QQocEiuE+M= X-Google-Smtp-Source: APiQypK8Vmr5Ly046YbDE9uoJpaKG4wcuYUOS2WcLR3QFAc+TbVyyRQeeqvcPizQFGQkUqAatiZFuQ== X-Received: by 2002:adf:e948:: with SMTP id m8mr9456454wrn.193.1585927017534; Fri, 03 Apr 2020 08:16:57 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 28/36] lxc: convert virLXCDriverConfig to GObject Date: Fri, 3 Apr 2020 17:15:56 +0200 Message-Id: <20200403151604.106616-29-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.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FH1aS028365 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.11 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/lxc/lxc_conf.c | 31 +++++++++++++------------- src/lxc/lxc_conf.h | 10 +++++++-- src/lxc/lxc_driver.c | 51 +++++++++++++++---------------------------- src/lxc/lxc_process.c | 33 +++++++++------------------- 4 files changed, 51 insertions(+), 74 deletions(-) diff --git a/src/lxc/lxc_conf.c b/src/lxc/lxc_conf.c index cfb80eaf22..243020f9f1 100644 --- a/src/lxc/lxc_conf.c +++ b/src/lxc/lxc_conf.c @@ -42,19 +42,20 @@ =20 VIR_LOG_INIT("lxc.lxc_conf"); =20 -static virClassPtr virLXCDriverConfigClass; -static void virLXCDriverConfigDispose(void *obj); +G_DEFINE_TYPE(virLXCDriverConfig, vir_lxc_driver_config, G_TYPE_OBJECT); =20 -static int virLXCConfigOnceInit(void) -{ - if (!VIR_CLASS_NEW(virLXCDriverConfig, virClassForObject())) - return -1; +static void virLXCDriverConfigFinalize(GObject *obj); =20 - return 0; +static void vir_lxc_driver_config_init(virLXCDriverConfig *cfg G_GNUC_UNUS= ED) +{ } =20 -VIR_ONCE_GLOBAL_INIT(virLXCConfig); +static void vir_lxc_driver_config_class_init(virLXCDriverConfigClass *klas= s) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 + obj->finalize =3D virLXCDriverConfigFinalize; +} =20 /* Functions */ virCapsPtr virLXCDriverCapsInit(virLXCDriverPtr driver) @@ -227,11 +228,7 @@ virLXCDriverConfigNew(void) { virLXCDriverConfigPtr cfg; =20 - if (virLXCConfigInitialize() < 0) - return NULL; - - if (!(cfg =3D virObjectNew(virLXCDriverConfigClass))) - return NULL; + cfg =3D VIR_LXC_DRIVER_CONFIG(g_object_new(VIR_TYPE_LXC_DRIVER_CONFIG,= NULL)); =20 cfg->securityDefaultConfined =3D false; cfg->securityRequireConfined =3D false; @@ -278,19 +275,21 @@ virLXCDriverConfigPtr virLXCDriverGetConfig(virLXCDri= verPtr driver) { virLXCDriverConfigPtr cfg; lxcDriverLock(driver); - cfg =3D virObjectRef(driver->config); + cfg =3D g_object_ref(driver->config); lxcDriverUnlock(driver); return cfg; } =20 static void -virLXCDriverConfigDispose(void *obj) +virLXCDriverConfigFinalize(GObject *obj) { - virLXCDriverConfigPtr cfg =3D obj; + virLXCDriverConfigPtr cfg =3D VIR_LXC_DRIVER_CONFIG(obj); =20 VIR_FREE(cfg->configDir); VIR_FREE(cfg->autostartDir); VIR_FREE(cfg->stateDir); VIR_FREE(cfg->logDir); VIR_FREE(cfg->securityDriverName); + + G_OBJECT_CLASS(vir_lxc_driver_config_parent_class)->finalize(obj); } diff --git a/src/lxc/lxc_conf.h b/src/lxc/lxc_conf.h index f2f0e0a570..5ed84f79c7 100644 --- a/src/lxc/lxc_conf.h +++ b/src/lxc/lxc_conf.h @@ -34,6 +34,7 @@ #include "virusb.h" #include "virclosecallbacks.h" #include "virhostdev.h" +#include =20 #define LXC_DRIVER_NAME "LXC" =20 @@ -45,11 +46,16 @@ typedef struct _virLXCDriver virLXCDriver; typedef virLXCDriver *virLXCDriverPtr; =20 -typedef struct _virLXCDriverConfig virLXCDriverConfig; +#define VIR_TYPE_LXC_DRIVER_CONFIG vir_lxc_driver_config_get_type() +G_DECLARE_FINAL_TYPE(virLXCDriverConfig, + vir_lxc_driver_config, + VIR, + LXC_DRIVER_CONFIG, + GObject); typedef virLXCDriverConfig *virLXCDriverConfigPtr; =20 struct _virLXCDriverConfig { - virObject parent; + GObject parent; =20 char *configDir; char *autostartDir; diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 5da9ec7c58..07bc7219f1 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -400,7 +400,7 @@ lxcDomainDefineXMLFlags(virConnectPtr conn, const char = *xml, unsigned int flags) virDomainPtr dom =3D NULL; virObjectEventPtr event =3D NULL; virDomainDefPtr oldDef =3D NULL; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); g_autoptr(virCaps) caps =3D NULL; unsigned int parse_flags =3D VIR_DOMAIN_DEF_PARSE_INACTIVE; =20 @@ -458,7 +458,6 @@ lxcDomainDefineXMLFlags(virConnectPtr conn, const char = *xml, unsigned int flags) virDomainDefFree(oldDef); virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return dom; } =20 @@ -475,7 +474,7 @@ static int lxcDomainUndefineFlags(virDomainPtr dom, virDomainObjPtr vm; virObjectEventPtr event =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 virCheckFlags(0, -1); =20 @@ -510,7 +509,6 @@ static int lxcDomainUndefineFlags(virDomainPtr dom, cleanup: virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } =20 @@ -638,7 +636,7 @@ static int lxcDomainSetMemoryFlags(virDomainPtr dom, un= signed long newmem, int ret =3D -1; virLXCDomainObjPrivatePtr priv; virLXCDriverPtr driver =3D dom->conn->privateData; - virLXCDriverConfigPtr cfg =3D NULL; + g_autoptr(virLXCDriverConfig) cfg =3D NULL; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG | @@ -719,7 +717,6 @@ static int lxcDomainSetMemoryFlags(virDomainPtr dom, un= signed long newmem, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -743,7 +740,7 @@ lxcDomainSetMemoryParameters(virDomainPtr dom, virDomainDefPtr persistentDef =3D NULL; virDomainObjPtr vm =3D NULL; virLXCDomainObjPrivatePtr priv =3D NULL; - virLXCDriverConfigPtr cfg =3D NULL; + g_autoptr(virLXCDriverConfig) cfg =3D NULL; virLXCDriverPtr driver =3D dom->conn->privateData; int ret =3D -1; =20 @@ -804,7 +801,6 @@ lxcDomainSetMemoryParameters(virDomainPtr dom, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -976,7 +972,7 @@ static int lxcDomainCreateWithFiles(virDomainPtr dom, virDomainObjPtr vm; virObjectEventPtr event =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 virCheckFlags(VIR_DOMAIN_START_AUTODESTROY, -1); =20 @@ -1023,7 +1019,6 @@ static int lxcDomainCreateWithFiles(virDomainPtr dom, cleanup: virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); virNWFilterUnlockFilterUpdates(); return ret; } @@ -1079,7 +1074,7 @@ lxcDomainCreateXMLWithFiles(virConnectPtr conn, virDomainDefPtr def =3D NULL; virDomainPtr dom =3D NULL; virObjectEventPtr event =3D NULL; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); g_autoptr(virCaps) caps =3D NULL; unsigned int parse_flags =3D VIR_DOMAIN_DEF_PARSE_INACTIVE; =20 @@ -1150,7 +1145,6 @@ lxcDomainCreateXMLWithFiles(virConnectPtr conn, virDomainDefFree(def); virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); virNWFilterUnlockFilterUpdates(); return dom; } @@ -1582,7 +1576,7 @@ static void lxcNotifyLoadDomain(virDomainObjPtr vm, i= nt newVM, void *opaque) static int lxcStateReload(void) { - virLXCDriverConfigPtr cfg =3D NULL; + g_autoptr(virLXCDriverConfig) cfg =3D NULL; =20 if (!lxc_driver) return 0; @@ -1594,7 +1588,6 @@ lxcStateReload(void) cfg->autostartDir, false, lxc_driver->xmlopt, lxcNotifyLoadDomain, lxc_driver); - virObjectUnref(cfg); return 0; } =20 @@ -1620,7 +1613,8 @@ static int lxcStateCleanup(void) if (lxc_driver->lockFD !=3D -1) virPidFileRelease(lxc_driver->config->stateDir, "driver", lxc_driv= er->lockFD); =20 - virObjectUnref(lxc_driver->config); + if (lxc_driver->config) + g_object_unref(lxc_driver->config); virMutexDestroy(&lxc_driver->lock); VIR_FREE(lxc_driver); =20 @@ -1801,7 +1795,7 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom, int ret =3D -1; int rc; virLXCDomainObjPrivatePtr priv; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -1914,7 +1908,6 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr dom, cleanup: virDomainDefFree(persistentDefCopy); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2239,7 +2232,7 @@ lxcDomainSetBlkioParameters(virDomainPtr dom, virDomainDefPtr def =3D NULL; virDomainDefPtr persistentDef =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D NULL; + g_autoptr(virLXCDriverConfig) cfg =3D NULL; virLXCDomainObjPrivatePtr priv; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | @@ -2304,7 +2297,6 @@ lxcDomainSetBlkioParameters(virDomainPtr dom, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2463,7 +2455,7 @@ static int lxcDomainSetAutostart(virDomainPtr dom, virDomainObjPtr vm; char *configFile =3D NULL, *autostartLink =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 if (!(vm =3D lxcDomObjFromDomain(dom))) goto cleanup; @@ -2529,7 +2521,6 @@ static int lxcDomainSetAutostart(virDomainPtr dom, VIR_FREE(configFile); VIR_FREE(autostartLink); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2625,7 +2616,7 @@ static int lxcDomainSuspend(virDomainPtr dom) virDomainObjPtr vm; virObjectEventPtr event =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 if (!(vm =3D lxcDomObjFromDomain(dom))) goto cleanup; @@ -2662,7 +2653,6 @@ static int lxcDomainSuspend(virDomainPtr dom) cleanup: virObjectEventStateQueue(driver->domainEventState, event); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2674,7 +2664,7 @@ static int lxcDomainResume(virDomainPtr dom) int ret =3D -1; int state; virLXCDomainObjPrivatePtr priv; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 if (!(vm =3D lxcDomObjFromDomain(dom))) goto cleanup; @@ -2719,7 +2709,6 @@ static int lxcDomainResume(virDomainPtr dom) cleanup: virObjectEventStateQueue(driver->domainEventState, event); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4297,7 +4286,7 @@ static int lxcDomainAttachDeviceFlags(virDomainPtr do= m, virDomainDefPtr vmdef =3D NULL; virDomainDeviceDefPtr dev =3D NULL, dev_copy =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -4384,7 +4373,6 @@ static int lxcDomainAttachDeviceFlags(virDomainPtr do= m, virDomainDeviceDefFree(dev_copy); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4406,7 +4394,7 @@ static int lxcDomainUpdateDeviceFlags(virDomainPtr do= m, virDomainDefPtr vmdef =3D NULL; virDomainDeviceDefPtr dev =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -4456,7 +4444,6 @@ static int lxcDomainUpdateDeviceFlags(virDomainPtr do= m, virDomainDefFree(vmdef); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4471,7 +4458,7 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr do= m, virDomainDefPtr vmdef =3D NULL; virDomainDeviceDefPtr dev =3D NULL, dev_copy =3D NULL; int ret =3D -1; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -4552,7 +4539,6 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr do= m, virDomainDeviceDefFree(dev_copy); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4825,7 +4811,7 @@ lxcDomainSetMetadata(virDomainPtr dom, { virLXCDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; - virLXCDriverConfigPtr cfg =3D NULL; + g_autoptr(virLXCDriverConfig) cfg =3D NULL; int ret =3D -1; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | @@ -4856,7 +4842,6 @@ lxcDomainSetMetadata(virDomainPtr dom, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c index 699accc633..cacfa14094 100644 --- a/src/lxc/lxc_process.c +++ b/src/lxc/lxc_process.c @@ -162,7 +162,7 @@ static void virLXCProcessCleanup(virLXCDriverPtr driver, size_t i; virLXCDomainObjPrivatePtr priv =3D vm->privateData; const virNetDevVPortProfile *vport =3D NULL; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); virConnectPtr conn =3D NULL; =20 VIR_DEBUG("Cleanup VM name=3D%s pid=3D%d reason=3D%d", @@ -257,7 +257,6 @@ static void virLXCProcessCleanup(virLXCDriverPtr driver, } =20 virDomainObjRemoveTransientDef(vm); - virObjectUnref(cfg); virObjectUnref(conn); } =20 @@ -340,11 +339,10 @@ virLXCProcessSetupInterfaceDirect(virLXCDriverPtr dri= ver, virDomainDefPtr def, virDomainNetDefPtr net) { - char *ret =3D NULL; char *res_ifname =3D NULL; const virNetDevBandwidth *bw; const virNetDevVPortProfile *prof; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); const char *linkdev =3D virDomainNetGetActualDirectDev(net); unsigned int macvlan_create_flags =3D VIR_NETDEV_MACVLAN_CREATE_IFUP; =20 @@ -386,13 +384,9 @@ virLXCProcessSetupInterfaceDirect(virLXCDriverPtr driv= er, cfg->stateDir, NULL, 0, macvlan_create_flags) < 0) - goto cleanup; - - ret =3D res_ifname; + return NULL; =20 - cleanup: - virObjectUnref(cfg); - return ret; + return res_ifname; } =20 static const char *nsInfoLocal[VIR_LXC_DOMAIN_NAMESPACE_LAST] =3D { @@ -786,7 +780,7 @@ static void virLXCProcessMonitorInitNotify(virLXCMonito= rPtr mon G_GNUC_UNUSED, { virLXCDriverPtr driver =3D lxc_driver; virLXCDomainObjPrivatePtr priv; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); ino_t inode =3D 0; =20 virObjectLock(vm); @@ -806,7 +800,6 @@ static void virLXCProcessMonitorInitNotify(virLXCMonito= rPtr mon G_GNUC_UNUSED, VIR_WARN("Cannot update XML with PID for LXC %s", vm->def->name); =20 virObjectUnlock(vm); - virObjectUnref(cfg); } =20 static virLXCMonitorCallbacks monitorCallbacks =3D { @@ -820,10 +813,10 @@ static virLXCMonitorPtr virLXCProcessConnectMonitor(v= irLXCDriverPtr driver, virDomainObjPtr vm) { virLXCMonitorPtr monitor =3D NULL; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 if (virSecurityManagerSetSocketLabel(driver->securityManager, vm->def)= < 0) - goto cleanup; + return NULL; =20 /* Hold an extra reference because we can't allow 'vm' to be * deleted while the monitor is active. This will be unreffed @@ -840,11 +833,8 @@ static virLXCMonitorPtr virLXCProcessConnectMonitor(vi= rLXCDriverPtr driver, virObjectUnref(monitor); monitor =3D NULL; } - goto cleanup; } =20 - cleanup: - virObjectUnref(cfg); return monitor; } =20 @@ -932,7 +922,7 @@ virLXCProcessBuildControllerCmd(virLXCDriverPtr driver, char *filterstr; char *outputstr; virCommandPtr cmd; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); =20 cmd =3D virCommandNew(vm->def->emulator); =20 @@ -1013,7 +1003,6 @@ virLXCProcessBuildControllerCmd(virLXCDriverPtr drive= r, virCommandRequireHandshake(cmd); =20 cleanup: - virObjectUnref(cfg); return cmd; error: virCommandFree(cmd); @@ -1202,7 +1191,7 @@ int virLXCProcessStart(virConnectPtr conn, virLXCDomainObjPrivatePtr priv =3D vm->privateData; virCapsPtr caps =3D NULL; virErrorPtr err =3D NULL; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); virCgroupPtr selfcgroup; int status; char *pidfile =3D NULL; @@ -1564,7 +1553,6 @@ int virLXCProcessStart(virConnectPtr conn, VIR_FORCE_CLOSE(handshakefds[1]); VIR_FREE(pidfile); VIR_FREE(logfile); - virObjectUnref(cfg); if (caps) g_object_unref(caps); =20 @@ -1663,7 +1651,7 @@ virLXCProcessReconnectDomain(virDomainObjPtr vm, { virLXCDriverPtr driver =3D opaque; virLXCDomainObjPrivatePtr priv; - virLXCDriverConfigPtr cfg =3D virLXCDriverGetConfig(driver); + g_autoptr(virLXCDriverConfig) cfg =3D virLXCDriverGetConfig(driver); int ret =3D -1; =20 virObjectLock(vm); @@ -1729,7 +1717,6 @@ virLXCProcessReconnectDomain(virDomainObjPtr vm, =20 ret =3D 0; cleanup: - virObjectUnref(cfg); virObjectUnlock(vm); return ret; =20 --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1585927057; cv=none; d=zohomail.com; s=zohoarc; b=nISvKgX6jpNCfi3V54evdOHCUPMJdLxQpfQyI9OgWOYYOsKH8d/uIUqldOQuednCv5DY01hE91Mw759+bmpADHgaUfPeMN6bq/EPuz5/hRmFcJ2kyhD8MdQIhfIUuBz3BDMr1IIbn/Jo211G5YLdWLzyIv7d4IcaLGbQhjZ7R/o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927057; 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=GS7Lnm1gZLiaio+86RJbxxZtQkJ4WBrgROngf6OuanY=; b=Nf0haqsx/14O2Ns1/YBgXBa3bqVRHNAwO5yEmTzy1VzjDhs74v1q6TRoQzF12XlufKa7DCCzXZy4VXqjMMVgdFuUkRQEp+Ql74SpeeHRFg8SiTFeCLV/EF/EylTTfgDQXvCI+bojCqwWy3Ie01dHJ/4OBOKnRfe4US8XBJxRfRE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 158592705767568.86649185340013; Fri, 3 Apr 2020 08:17:37 -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-167-aR4lDh-6NxujrsomcwHCPg-1; Fri, 03 Apr 2020 11:17:33 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D4A1418C35A3; Fri, 3 Apr 2020 15:17:25 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B15FF89F0A; Fri, 3 Apr 2020 15:17:25 +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 6551586BF9; Fri, 3 Apr 2020 15:17:25 +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 033FH97V028438 for ; Fri, 3 Apr 2020 11:17:09 -0400 Received: by smtp.corp.redhat.com (Postfix) id 738332028CD6; Fri, 3 Apr 2020 15:17:09 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6ED7A2028DCC for ; Fri, 3 Apr 2020 15:17:07 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (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 237E08007B3 for ; Fri, 3 Apr 2020 15:17:07 +0000 (UTC) Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-406-XpUler97P9y2h7HPqD4Tpg-1; Fri, 03 Apr 2020 11:17:01 -0400 Received: by mail-wr1-f41.google.com with SMTP id 65so8994117wrl.1 for ; Fri, 03 Apr 2020 08:17:01 -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.16.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:16:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927056; 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=GS7Lnm1gZLiaio+86RJbxxZtQkJ4WBrgROngf6OuanY=; b=LYpyx40PxSfPujgQrPxkthsZWaFI4Vp9ouKz+lZCV2Aptgb8cuLlJi/cRDXL/PEcvLu1rS fAlThjmfXiUfaWIJhxWzxnHShfQ2STxC2iVfqIZOqXvp58LnNbKY2bPuQl2Q0tRIaQoO1Q YsBfCl5b0Uo0/A/dtL00jYTfF3tPhY0= X-MC-Unique: aR4lDh-6NxujrsomcwHCPg-1 X-MC-Unique: XpUler97P9y2h7HPqD4Tpg-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=A3WzPOhH/oD3OUuHY8s+XKN123I9TbQ70ZzeSKaA4Co=; b=MN+WagKaY18OCypMCRrwLmVPIp/p88q9Da5lNBT0BHQC1Q+KpiJu3LlgR52v6pN+9c Tn7ZVg21ax25a+JPCVB/P4EKvfpguO0ARoVUEG5rRouy/QObxiTkvmBoHHHnwcllIBKH 1np4W9RpOv9gv4TmUq6YgRgNnhFFVJVZxoj9A7oWVfbQKPdOmW+QJNaoGbBaJDNJLszs 5Du1CX+X6SZN1d58+6NUGpbnevgpDzpfR1AWGOR75FPg6RF40fiQPZX5ecOEpKErldd1 f0ANIHv4TEm/mvLHrFZuNfItSYMZz6AOrfRo59QNc1EuMc8hs2xvify/YGAccvlKMjla XAaA== X-Gm-Message-State: AGi0PuYCuVGeQuwdgyWnVQO6Q2vLVT02kSGHn3vXBHW7k811B2GrU3ya rOfHl8+DZgJPTGMcFDMM2qOIHZWQnTU= X-Google-Smtp-Source: APiQypLYANcTJgi6ztvvoeliXzLFdCd/x/dxa0VxBj/nfZ1O/M5pYyXqjTku5izjTK1RjS+3DFhQDQ== X-Received: by 2002:a05:6000:a:: with SMTP id h10mr10138315wrx.226.1585927019028; Fri, 03 Apr 2020 08:16:59 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 29/36] libxl: convert libxlDriverConfig to GObject Date: Fri, 3 Apr 2020 17:15:57 +0200 Message-Id: <20200403151604.106616-30-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.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FH97V028438 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.11 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 | 51 ++++++----- src/libxl/libxl_conf.h | 12 ++- src/libxl/libxl_driver.c | 163 +++++++++++++----------------------- src/libxl/libxl_migration.c | 21 ++--- tests/testutilsxen.c | 3 +- 5 files changed, 98 insertions(+), 152 deletions(-) diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index d9377438d9..547868c6e8 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -52,23 +52,27 @@ 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 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->finalize =3D libxlDriverConfigFinalize; +} =20 static void -libxlDriverConfigDispose(void *obj) +libxlDriverConfigFinalize(GObject *obj) { - libxlDriverConfigPtr cfg =3D obj; + libxlDriverConfigPtr cfg =3D LIBXL_DRIVER_CONFIG(obj); =20 if (cfg->caps) g_object_unref(cfg->caps); @@ -87,6 +91,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 @@ -1685,13 +1691,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); @@ -1707,34 +1708,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 bd43f3310e..eab8945e48 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: @@ -520,7 +519,8 @@ libxlStateCleanup(void) if (libxl_driver->lockFD !=3D -1) virPidFileRelease(libxl_driver->config->stateDir, "driver", libxl_= driver->lockFD); =20 - virObjectUnref(libxl_driver->config); + if (libxl_driver->config) + g_object_unref(libxl_driver->config); virMutexDestroy(&libxl_driver->lock); VIR_FREE(libxl_driver); =20 @@ -590,7 +590,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; @@ -643,7 +643,6 @@ libxlAddDom0(libxlDriverPrivatePtr driver) libxl_dominfo_dispose(&d_info); virDomainDefFree(def); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -832,7 +831,7 @@ libxlStateInitialize(bool privileged, static int libxlStateReload(void) { - libxlDriverConfigPtr cfg; + g_autoptr(libxlDriverConfig) cfg =3D NULL; =20 if (!libxl_driver) return 0; @@ -850,7 +849,6 @@ libxlStateReload(void) libxlAutostartDomain, libxl_driver); =20 - virObjectUnref(cfg); return 0; } =20 @@ -919,14 +917,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 @@ -966,7 +963,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; @@ -980,7 +977,6 @@ libxlConnectGetMaxVcpus(virConnectPtr conn, const char = *type G_GNUC_UNUSED) if (ret <=3D 0) ret =3D -1; =20 - virObjectUnref(cfg); return ret; } =20 @@ -998,7 +994,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; @@ -1006,7 +1002,6 @@ libxlConnectGetCapabilities(virConnectPtr conn) cfg =3D libxlDriverConfigGet(driver); xml =3D virCapabilitiesFormatXML(cfg->caps); =20 - virObjectUnref(cfg); return xml; } =20 @@ -1042,7 +1037,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 | @@ -1087,7 +1082,6 @@ libxlDomainCreateXML(virConnectPtr conn, const char *= xml, cleanup: virDomainDefFree(def); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return dom; } =20 @@ -1164,7 +1158,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; @@ -1208,7 +1202,6 @@ libxlDomainSuspend(virDomainPtr dom) cleanup: virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } =20 @@ -1217,7 +1210,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; @@ -1262,7 +1255,6 @@ libxlDomainResume(virDomainPtr dom) cleanup: virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } =20 @@ -1270,7 +1262,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 @@ -1320,7 +1312,6 @@ libxlDomainShutdownFlags(virDomainPtr dom, unsigned i= nt flags) =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -1335,7 +1326,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 @@ -1367,7 +1358,6 @@ libxlDomainReboot(virDomainPtr dom, unsigned int flag= s) =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -1376,7 +1366,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; @@ -1421,7 +1411,6 @@ libxlDomainDestroyFlags(virDomainPtr dom, cleanup: virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } =20 @@ -1441,7 +1430,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); @@ -1507,7 +1496,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 @@ -1636,7 +1625,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; @@ -1721,7 +1710,6 @@ libxlDomainSetMemoryFlags(virDomainPtr dom, unsigned = long newmem, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -1741,7 +1729,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; @@ -1777,7 +1765,6 @@ libxlDomainGetInfo(virDomainPtr dom, virDomainInfoPtr= info) =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -1815,7 +1802,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; @@ -1892,7 +1879,6 @@ libxlDoDomainSave(libxlDriverPrivatePtr driver, if (VIR_CLOSE(fd) < 0) virReportSystemError(errno, "%s", _("cannot close file")); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } =20 @@ -1957,7 +1943,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; @@ -2010,7 +1996,6 @@ libxlDomainRestoreFlags(virConnectPtr conn, const cha= r *from, virReportSystemError(errno, "%s", _("cannot close file")); virDomainDefFree(def); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2024,7 +2009,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; @@ -2107,7 +2092,6 @@ libxlDomainCoreDump(virDomainPtr dom, const char *to,= unsigned int flags) cleanup: virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } =20 @@ -2240,7 +2224,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; @@ -2378,7 +2362,6 @@ libxlDomainSetVcpusFlags(virDomainPtr dom, unsigned i= nt nvcpus, cleanup: VIR_FREE(bitmask); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2459,7 +2442,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; @@ -2527,7 +2510,6 @@ libxlDomainPinVcpuFlags(virDomainPtr dom, unsigned in= t vcpu, cleanup: virDomainObjEndAPI(&vm); virBitmapFree(pcpumap); - virObjectUnref(cfg); return ret; } =20 @@ -2545,7 +2527,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; @@ -2574,7 +2556,6 @@ libxlDomainGetVcpuPinInfo(virDomainPtr dom, int ncpum= aps, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2583,7 +2564,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; @@ -2635,7 +2616,6 @@ libxlDomainGetVcpus(virDomainPtr dom, virVcpuInfoPtr = info, int maxinfo, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2643,7 +2623,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; @@ -2666,7 +2646,6 @@ libxlDomainGetXMLDesc(virDomainPtr dom, unsigned int = flags) =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -2677,7 +2656,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; @@ -2716,7 +2695,6 @@ libxlConnectDomainXMLFromNative(virConnectPtr conn, =20 cleanup: virDomainDefFree(def); - virObjectUnref(cfg); return xml; } =20 @@ -2727,7 +2705,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; @@ -2766,7 +2744,6 @@ libxlConnectDomainXMLToNative(virConnectPtr conn, con= st char * nativeFormat, =20 cleanup: virDomainDefFree(def); - virObjectUnref(cfg); return ret; } =20 @@ -2846,7 +2823,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; @@ -2896,7 +2873,6 @@ libxlDomainDefineXMLFlags(virConnectPtr conn, const c= har *xml, unsigned int flag virDomainDefFree(oldDef); virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return dom; } =20 @@ -2911,7 +2887,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; @@ -2967,7 +2943,6 @@ libxlDomainUndefineFlags(virDomainPtr dom, VIR_FREE(name); virDomainObjEndAPI(&vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return ret; } =20 @@ -2980,7 +2955,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; @@ -3027,14 +3002,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; @@ -3098,7 +3072,6 @@ libxlDomainAttachDeviceDiskLive(virDomainObjPtr vm, v= irDomainDeviceDefPtr dev) } =20 cleanup: - virObjectUnref(cfg); return ret; } =20 @@ -3107,7 +3080,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; @@ -3154,7 +3127,6 @@ libxlDomainAttachHostPCIDevice(libxlDriverPrivatePtr = driver, vm->def->name, &hostdev, 1, NULL); =20 cleanup: - virObjectUnref(cfg); libxl_device_pci_dispose(&pcidev); return ret; } @@ -3165,7 +3137,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; @@ -3209,7 +3181,6 @@ libxlDomainAttachControllerDevice(libxlDriverPrivateP= tr driver, ret =3D 0; =20 cleanup: - virObjectUnref(cfg); libxl_device_usbctrl_dispose(&usbctrl); return ret; } @@ -3219,7 +3190,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; @@ -3289,7 +3260,6 @@ libxlDomainAttachHostUSBDevice(libxlDriverPrivatePtr = driver, vm->def->name, &hostdev, 1); =20 cleanup: - virObjectUnref(cfg); libxl_device_usbdev_dispose(&usbdev); return ret; } @@ -3333,7 +3303,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; @@ -3386,7 +3356,6 @@ libxlDomainDetachDeviceDiskLive(virDomainObjPtr vm, v= irDomainDeviceDefPtr dev) } =20 cleanup: - virObjectUnref(cfg); return ret; } =20 @@ -3395,7 +3364,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; @@ -3476,7 +3445,6 @@ libxlDomainAttachNetDevice(libxlDriverPrivatePtr driv= er, virDomainNetReleaseActualDevice(conn, vm->def, net); } virObjectUnref(conn); - virObjectUnref(cfg); virErrorRestore(&save_err); return ret; } @@ -3644,7 +3612,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; @@ -3699,7 +3667,6 @@ libxlDomainDetachHostPCIDevice(libxlDriverPrivatePtr = driver, virDomainHostdevDefFree(detach); =20 cleanup: - virObjectUnref(cfg); libxl_device_pci_dispose(&pcidev); return ret; } @@ -3715,7 +3682,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 @@ -3751,7 +3718,6 @@ libxlDomainDetachControllerDevice(libxlDriverPrivateP= tr driver, =20 cleanup: virDomainControllerDefFree(detach); - virObjectUnref(cfg); libxl_device_usbctrl_dispose(&usbctrl); return ret; } @@ -3761,7 +3727,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; @@ -3819,7 +3785,6 @@ libxlDomainDetachHostUSBDevice(libxlDriverPrivatePtr = driver, =20 cleanup: virDomainHostdevDefFree(detach); - virObjectUnref(cfg); libxl_device_usbdev_dispose(&usbdev); return ret; } @@ -3862,7 +3827,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; @@ -3913,7 +3878,6 @@ libxlDomainDetachNetDevice(libxlDriverPrivatePtr driv= er, } virDomainNetRemove(vm->def, detachidx); } - virObjectUnref(cfg); virErrorRestore(&save_err); return ret; } @@ -4102,7 +4066,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; @@ -4174,7 +4138,6 @@ libxlDomainAttachDeviceFlags(virDomainPtr dom, const = char *xml, virDomainDefFree(vmdef); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4190,7 +4153,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; @@ -4264,7 +4227,6 @@ libxlDomainDetachDeviceFlags(virDomainPtr dom, const = char *xml, virDomainDefFree(vmdef); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4280,7 +4242,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; @@ -4346,7 +4308,6 @@ libxlDomainUpdateDeviceFlags(virDomainPtr dom, const = char *xml, virDomainDefFree(vmdef); virDomainDeviceDefFree(dev); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4355,7 +4316,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); @@ -4372,7 +4333,6 @@ libxlNodeGetFreeMemory(virConnectPtr conn) =20 cleanup: libxl_physinfo_dispose(&phy_info); - virObjectUnref(cfg); return ret; } =20 @@ -4386,7 +4346,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; @@ -4420,7 +4380,6 @@ libxlNodeGetCellsFreeMemory(virConnectPtr conn, =20 cleanup: libxl_numainfo_list_free(numa_info, nr_nodes); - virObjectUnref(cfg); return ret; } =20 @@ -4485,7 +4444,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; @@ -4549,7 +4508,6 @@ libxlDomainSetAutostart(virDomainPtr dom, int autosta= rt) VIR_FREE(configFile); VIR_FREE(autostartLink); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4557,7 +4515,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; @@ -4604,7 +4562,6 @@ libxlDomainGetSchedulerType(virDomainPtr dom, int *np= arams) =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4615,7 +4572,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; @@ -4666,7 +4623,6 @@ libxlDomainGetSchedulerParametersFlags(virDomainPtr d= om, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4684,7 +4640,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; @@ -4750,7 +4706,6 @@ libxlDomainSetSchedulerParametersFlags(virDomainPtr d= om, =20 cleanup: virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -4847,7 +4802,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; @@ -4955,7 +4910,6 @@ libxlDomainGetNumaParameters(virDomainPtr dom, virBitmapFree(nodes); libxl_bitmap_dispose(&nodemap); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } #endif @@ -5062,7 +5016,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 @@ -5087,7 +5041,6 @@ libxlDomainGetTotalCPUStats(libxlDriverPrivatePtr dri= ver, =20 cleanup: libxl_dominfo_dispose(&d_info); - virObjectUnref(cfg); return ret; } =20 @@ -5102,7 +5055,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) @@ -5131,7 +5084,6 @@ libxlDomainGetPerCPUStats(libxlDriverPrivatePtr drive= r, cleanup: if (vcpuinfo) libxl_vcpuinfo_list_free(vcpuinfo, maxcpu); - virObjectUnref(cfg); return ret; } =20 @@ -5183,7 +5135,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; @@ -5227,7 +5179,6 @@ libxlDomainMemoryStats(virDomainPtr dom, cleanup: libxl_dominfo_dispose(&d_info); virDomainObjEndAPI(&vm); - virObjectUnref(cfg); return ret; } =20 @@ -6412,7 +6363,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; @@ -6473,7 +6424,6 @@ libxlConnectGetDomainCapabilities(virConnectPtr conn, =20 cleanup: virObjectUnref(domCaps); - virObjectUnref(cfg); return ret; } =20 @@ -6484,7 +6434,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 @@ -6501,7 +6451,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 ac462aaf3f..a105a03b47 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 @@ -1158,7 +1154,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); @@ -1201,7 +1197,6 @@ libxlDomainMigrationSrcPerformP2P(libxlDriverPrivateP= tr driver, virErrorPreserveLast(&orig_err); virObjectUnlock(vm); virObjectUnref(dconn); - virObjectUnref(cfg); virObjectLock(vm); virErrorRestore(&orig_err); return ret; @@ -1278,7 +1273,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; @@ -1368,7 +1363,6 @@ libxlDomainMigrationDstFinish(virConnectPtr dconn, /* EndJob for corresponding BeginJob in prepare phase */ libxlDomainObjEndJob(driver, vm); virObjectEventStateQueue(driver->domainEventState, event); - virObjectUnref(cfg); return dom; } =20 @@ -1378,7 +1372,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; @@ -1424,6 +1418,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 6b6b0bf038..ced562996d 100644 --- a/tests/testutilsxen.c +++ b/tests/testutilsxen.c @@ -111,7 +111,8 @@ libxlDriverPrivatePtr testXLInitDriver(void) =20 void testXLFreeDriver(libxlDriverPrivatePtr driver) { - virObjectUnref(driver->config); + if (driver->config) + g_object_unref(driver->config); if (driver->xmlopt) g_object_unref(driver->xmlopt); virMutexDestroy(&driver->lock); --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927048; cv=none; d=zohomail.com; s=zohoarc; b=DAj/OAJLD+zc7XXHPwg017BAaViavLPLhpS+0ZoqjL4Z+vnhgaHlbCkGh1z4VoOY4tGxZbuMdm+6ZGuAu4tTDVGdsSUNHAzsxz/jNeC1KJYI59EF4CekG2qUyLuBVaEABiJ/AJALZ2VVXJh7nj3cjz1vQ/bT+9q7TdUL7vx4Y/k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927048; 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=bTDwhn2NPzmQf6pu9r1KKXMea1FuwlBEFmLv5I6Quxs=; b=Sk7CJZKv3TyHRl0280BXIK6R7voEuirerabb6fPFlYhlSuKikNxQycAaDrHkZ0na5qW0j6DoDynmKC2LqvkTrBwmfSxPwvIkdDuYkOKYCtAE/a/dG/Ryd5lKBp9cq32mDfN1z/ZVVG6OnmJXqm9vJ4VqvP+aA5MgPNPcuqWcKpA= 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 158592704888251.733222260320986; Fri, 3 Apr 2020 08:17:28 -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-129-IwB49poWO9mEaTC0d3_Ltg-1; Fri, 03 Apr 2020 11:17:22 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 756E9108593D; Fri, 3 Apr 2020 15:17:15 +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 347CE26DF6; Fri, 3 Apr 2020 15:17:15 +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 D1B2718033C8; Fri, 3 Apr 2020 15:17:14 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FH5e8028405 for ; Fri, 3 Apr 2020 11:17:05 -0400 Received: by smtp.corp.redhat.com (Postfix) id F2B6C2166B30; Fri, 3 Apr 2020 15:17:04 +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 EEF2C2166B2C for ; Fri, 3 Apr 2020 15:17:04 +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 D4E498FF66C for ; Fri, 3 Apr 2020 15:17:04 +0000 (UTC) Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-457-TGi6kM-jORiebs28-t6WXA-1; Fri, 03 Apr 2020 11:17:02 -0400 Received: by mail-wr1-f47.google.com with SMTP id p10so8964208wrt.6 for ; Fri, 03 Apr 2020 08:17:02 -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.16.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:17:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927045; 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=bTDwhn2NPzmQf6pu9r1KKXMea1FuwlBEFmLv5I6Quxs=; b=QDVBNNAUmztW7yUmAEYIL6GOw6hKv8e6RnlauhrdG+W9kr500vv5q1MBQy3MI/YL+QHvRh c5XRW2RpAbwt5K0Lz0RO222Gq0doTOzy8sHja59rKEGEbliyFIfCPR7d9E48s5Giv1OqCm gOhno8NYpDP2OTSy/4rILmnoCiLGCnA= X-MC-Unique: IwB49poWO9mEaTC0d3_Ltg-1 X-MC-Unique: TGi6kM-jORiebs28-t6WXA-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=Gq02y6ON5dWCDcp+q8QjX+cSUI4FW+ociiQglvefSlc=; b=CG7zp4jHbi+paCgUkZBWYFoTyhCXjsd1VU55UEZOTmFi9hPfRhSCKAFi347vXN35lg Qy0DPc4uIIwmHdoMtQKQHXf3p8bknGBndluc56VdaMkFPn9wEdKtyO8oA9G1ee+HYNwv ndxLtj7SbQ14tXX7B2t+xiHUaTfITj8iqiIqCPFsHyfcIIBgFRLO9EV9tZDVO6rArBw2 w7j4lV6DPBU5J5G8xf+4UU9YKDRuIgAqx4cVqareIIz1/LXsiwmft7/WY70oaa5nZ+SJ 1ftvpfr08tPAosxn2NRJgKoWBXH0j7TO9hqfIzYExwgj/38SBaNmyWm1/efXh6aFj1WY Dzzg== X-Gm-Message-State: AGi0PuZzA+UqLK3lZmCDBQt7+kAfPVFfsu2ubhescDPwUj4A0KDr+u6X K6qY47xhfpldAN4DN8KmY1T7/86kia8= X-Google-Smtp-Source: APiQypLPDqIrEjrJS2rFsdp+fnyOw5t90R00QOPGj0TAuoiiHx3bibf0xUB8mn6vhOebFsjJ782okw== X-Received: by 2002:a5d:4081:: with SMTP id o1mr9889395wrp.114.1585927020701; Fri, 03 Apr 2020 08:17:00 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 30/36] hypervisor: convert virHostdevManager to GObject Date: Fri, 3 Apr 2020 17:15:58 +0200 Message-Id: <20200403151604.106616-31-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.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FH5e8028405 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.23 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/hypervisor/virhostdev.c | 31 +++++++++++++++++++++---------- src/hypervisor/virhostdev.h | 13 +++++++++---- src/libxl/libxl_driver.c | 3 ++- src/lxc/lxc_driver.c | 3 ++- src/qemu/qemu_driver.c | 3 ++- 5 files changed, 36 insertions(+), 17 deletions(-) diff --git a/src/hypervisor/virhostdev.c b/src/hypervisor/virhostdev.c index 9017cc3be8..83298e7674 100644 --- a/src/hypervisor/virhostdev.c +++ b/src/hypervisor/virhostdev.c @@ -44,8 +44,21 @@ VIR_LOG_INIT("util.hostdev"); =20 static virHostdevManagerPtr manager; /* global hostdev manager, never free= d */ =20 -static virClassPtr virHostdevManagerClass; -static void virHostdevManagerDispose(void *obj); +G_DEFINE_TYPE(virHostdevManager, vir_hostdev_manager, G_TYPE_OBJECT); + +static void virHostdevManagerFinalize(GObject *obj); + +static void vir_hostdev_manager_init(virHostdevManager *mgr G_GNUC_UNUSED) +{ +} + +static void vir_hostdev_manager_class_init(virHostdevManagerClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virHostdevManagerFinalize; +} + static virHostdevManagerPtr virHostdevManagerNew(void); =20 struct virHostdevIsPCINodeDeviceUsedData { @@ -112,9 +125,6 @@ static int virHostdevIsPCINodeDeviceUsed(virPCIDeviceAd= dressPtr devAddr, void *o =20 static int virHostdevManagerOnceInit(void) { - if (!VIR_CLASS_NEW(virHostdevManager, virClassForObject())) - return -1; - if (!(manager =3D virHostdevManagerNew())) return -1; =20 @@ -124,9 +134,9 @@ static int virHostdevManagerOnceInit(void) VIR_ONCE_GLOBAL_INIT(virHostdevManager); =20 static void -virHostdevManagerDispose(void *obj) +virHostdevManagerFinalize(GObject *obj) { - virHostdevManagerPtr hostdevMgr =3D obj; + virHostdevManagerPtr hostdevMgr =3D VIR_HOSTDEV_MANAGER(obj); =20 virObjectUnref(hostdevMgr->activePCIHostdevs); virObjectUnref(hostdevMgr->inactivePCIHostdevs); @@ -136,6 +146,8 @@ virHostdevManagerDispose(void *obj) virObjectUnref(hostdevMgr->activeMediatedHostdevs); virObjectUnref(hostdevMgr->activeNVMeHostdevs); VIR_FREE(hostdevMgr->stateDir); + + G_OBJECT_CLASS(vir_hostdev_manager_parent_class)->finalize(obj); } =20 static virHostdevManagerPtr @@ -144,8 +156,7 @@ virHostdevManagerNew(void) g_autoptr(virHostdevManager) hostdevMgr =3D NULL; bool privileged =3D geteuid() =3D=3D 0; =20 - if (!(hostdevMgr =3D virObjectNew(virHostdevManagerClass))) - return NULL; + hostdevMgr =3D VIR_HOSTDEV_MANAGER(g_object_new(VIR_TYPE_HOSTDEV_MANAG= ER, NULL)); =20 if (!(hostdevMgr->activePCIHostdevs =3D virPCIDeviceListNew())) return NULL; @@ -206,7 +217,7 @@ virHostdevManagerGetDefault(void) if (virHostdevManagerInitialize() < 0) return NULL; =20 - return virObjectRef(manager); + return g_object_ref(manager); } =20 /** diff --git a/src/hypervisor/virhostdev.h b/src/hypervisor/virhostdev.h index 811bda40ed..be5345992c 100644 --- a/src/hypervisor/virhostdev.h +++ b/src/hypervisor/virhostdev.h @@ -30,6 +30,7 @@ #include "conf/domain_conf.h" #include "virmdev.h" #include "virnvme.h" +#include =20 typedef enum { VIR_HOSTDEV_STRICT_ACS_CHECK =3D (1 << 0), /* strict acs check */ @@ -41,10 +42,8 @@ typedef enum { } virHostdevFlag; =20 =20 -typedef struct _virHostdevManager virHostdevManager; -typedef virHostdevManager *virHostdevManagerPtr; struct _virHostdevManager { - virObject parent; + GObject parent; =20 char *stateDir; =20 @@ -59,7 +58,13 @@ struct _virHostdevManager { virNVMeDeviceListPtr activeNVMeHostdevs; }; =20 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(virHostdevManager, virObjectUnref); +#define VIR_TYPE_HOSTDEV_MANAGER vir_hostdev_manager_get_type() +G_DECLARE_FINAL_TYPE(virHostdevManager, + vir_hostdev_manager, + VIR, + HOSTDEV_MANAGER, + GObject); +typedef virHostdevManager *virHostdevManagerPtr; =20 =20 virHostdevManagerPtr virHostdevManagerGetDefault(void); diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index eab8945e48..313918acde 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -505,7 +505,8 @@ libxlStateCleanup(void) if (!libxl_driver) return -1; =20 - virObjectUnref(libxl_driver->hostdevMgr); + if (libxl_driver->hostdevMgr) + g_object_unref(libxl_driver->hostdevMgr); if (libxl_driver->xmlopt) g_object_unref(libxl_driver->xmlopt); virObjectUnref(libxl_driver->domains); diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 07bc7219f1..86f84fd152 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -1603,7 +1603,8 @@ static int lxcStateCleanup(void) =20 virSysinfoDefFree(lxc_driver->hostsysinfo); =20 - virObjectUnref(lxc_driver->hostdevMgr); + if (lxc_driver->hostdevMgr) + g_object_unref(lxc_driver->hostdevMgr); if (lxc_driver->caps) g_object_unref(lxc_driver->caps); virObjectUnref(lxc_driver->securityManager); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index bc28f65a3a..630ece6cc6 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1127,7 +1127,8 @@ qemuStateCleanup(void) virPortAllocatorRangeFree(qemu_driver->webSocketPorts); virPortAllocatorRangeFree(qemu_driver->remotePorts); virHashFree(qemu_driver->sharedDevices); - virObjectUnref(qemu_driver->hostdevMgr); + if (qemu_driver->hostdevMgr) + g_object_unref(qemu_driver->hostdevMgr); virObjectUnref(qemu_driver->securityManager); virObjectUnref(qemu_driver->domainEventState); virObjectUnref(qemu_driver->qemuCapsCache); --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927053; cv=none; d=zohomail.com; s=zohoarc; b=RD0iQKegG92jwbA8apXioBndr1UnhF4rsFYZ9ABTKx9Ut4U6mYzK3obuCU+2BVVya+yKtBAcUwaCDJnUpvo2HQ/Mfex5LWlzoH8cvD9vjIXY1BNrnhaARTKc0mjdZDJTLH4UB1pXmwPA04hC3Bi3qZr1wK3c+Mo97vuDuyKhJHo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927053; 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=G7TgHMsPnOf52Bwnj5JjI719EuXJOek9v+w2Sm7Lk/A=; b=f3mU22Ml4HX8ExRzqAes6bwR3gagZrifh0rrVdm1sccQ2F0gsQncEmIZWLdtWjwd5zjMadF0sd8yZkqMjP1gjqpxYVNS8mWelKVYgQLzMTeig731zFHHn60Pq1ZBQEVQ4raQ6C45I+a9kzpowfuqBqXLGxBgDW5GufpO+/jVpNg= 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 1585927053283948.0412418425441; Fri, 3 Apr 2020 08:17:33 -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-274-atcsFKfRM7yXvoq6MegE3Q-1; Fri, 03 Apr 2020 11:17:28 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id DD785802684; Fri, 3 Apr 2020 15:17:18 +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 B587A8EA1A; Fri, 3 Apr 2020 15:17:18 +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 71B4B18033AD; Fri, 3 Apr 2020 15:17:18 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FH6qL028418 for ; Fri, 3 Apr 2020 11:17:06 -0400 Received: by smtp.corp.redhat.com (Postfix) id A32532166B2E; Fri, 3 Apr 2020 15:17:06 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9F5A52166B2C for ; Fri, 3 Apr 2020 15:17:06 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (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 7CF111017E42 for ; Fri, 3 Apr 2020 15:17:06 +0000 (UTC) Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-297-zzQ6eGK9OqalAZ4kfDAWxQ-1; Fri, 03 Apr 2020 11:17:03 -0400 Received: by mail-wr1-f65.google.com with SMTP id 31so8966103wrs.3 for ; Fri, 03 Apr 2020 08:17:03 -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.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:17:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927052; 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=G7TgHMsPnOf52Bwnj5JjI719EuXJOek9v+w2Sm7Lk/A=; b=Re2dRvH/Lb6FonPpbewXnHr0KXf2n7s4DvhzJ94ttz/aev7Ym0m7alO+TqbuBRDrOxNsim o/zbS2oKsOgwq851Upa5U4JyMf1/L0gjP+4OKkiPJim3otuSxPTbE7i6uTCLU6NKMx5Th8 Vy/eqCRd3WZHQNXU+iTU7XdJCHpnv4o= X-MC-Unique: atcsFKfRM7yXvoq6MegE3Q-1 X-MC-Unique: zzQ6eGK9OqalAZ4kfDAWxQ-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=dBkI0DKfElfA/K0g7sUu6/VbzTx4Vofj5jbJGSSFYU4=; b=HVhTdJpVH2xfySez1EQKBzMlLTUmwI802KyanHdk3S+6w6NSpb0tWdaMZH5Ejro86i SOsuVO2swFh+Mj4rOttgoGaFeYrgKh6aFOPgOewV8tn40RZ3zolvsW27yusb4jb4EVkN +MhaNcLIPtinSS8uKdW/GHjp2TFdWI3UaN1+97gIH4f6Zlu1jQORXX6QYiuVCVZd48Cg hfQrHE9nje1qlN+BxrAMReqPnbDqTX6rGfFe/gKs34CeCrxf7U17M3p0XY2DRMZD1XqZ ijy8a4zuT4X9fHDtR8LnAqyRxLiVrLpYd/37oDn/CopHvzjhLBI0k+YAVju9cmOrsSbA 9Ykw== X-Gm-Message-State: AGi0PuaawjpQLYdkQGYd1Z4lIV5KTE4WUV6ptO3l1Zbpg1NrqiZKxbjt /yqeMdxwMbuKbhtXe2JGiw2QxPDr0rU= X-Google-Smtp-Source: APiQypJTwDs1tHt+SKFPSQx5s351N7CZJaROeAOk/CsLJjn/0JtQjnRSGZtYA08Lh2RydBImJsCh5g== X-Received: by 2002:adf:afc3:: with SMTP id y3mr8284857wrd.144.1585927022387; Fri, 03 Apr 2020 08:17:02 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 31/36] libxl: convert libxlMigrationDstArgs to GObject Date: Fri, 3 Apr 2020 17:15:59 +0200 Message-Id: <20200403151604.106616-32-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.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FH6qL028418 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.13 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_migration.c | 57 +++++++++++++++++++++++-------------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index a105a03b47..15724bb262 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -60,7 +60,7 @@ struct _libxlMigrationCookie { }; =20 typedef struct _libxlMigrationDstArgs { - virObject parent; + GObject parent; =20 int recvfd; virConnectPtr conn; @@ -73,7 +73,28 @@ typedef struct _libxlMigrationDstArgs { size_t nsocks; } libxlMigrationDstArgs; =20 -static virClassPtr libxlMigrationDstArgsClass; +G_DEFINE_TYPE(libxlMigrationDstArgs, libxl_migration_dst_args, G_TYPE_OBJE= CT); +#define LIBXL_TYPE_MIGRATION_DST_ARGS libxl_migration_dst_args_get_type() +G_DECLARE_FINAL_TYPE(libxlMigrationDstArgs, + libxl_migration_dst_args, + LIBXL, + MIGRATION_DST_ARGS, + GObject); + +static void libxlMigrationDstArgsFinalize(GObject *obj); + +static void +libxl_migration_dst_args_init(lixlMigrationDstArgs *args G_GNUC_UNUSED) +{ +} + +static void +libxl_migration_dst_args_class_init(lixlMigrationDstArgsClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D libxlMigrationDstArgsFinalize; +} =20 =20 static void @@ -226,26 +247,18 @@ libxlMigrationEatCookie(const char *cookiein, } =20 static void -libxlMigrationDstArgsDispose(void *obj) +libxlMigrationDstArgsFinalize(GObject *obj) { - libxlMigrationDstArgs *args =3D obj; + libxlMigrationDstArgs *args =3D LIBXL_MIGRATION_DST_ARGS(obj); =20 libxlMigrationCookieFree(args->migcookie); VIR_FREE(args->socks); virObjectUnref(args->conn); virObjectUnref(args->vm); -} =20 -static int -libxlMigrationDstArgsOnceInit(void) -{ - if (!VIR_CLASS_NEW(libxlMigrationDstArgs, virClassForObject())) - return -1; - - return 0; + G_OBJECT_CLASS(libxl_migration_dst_args_parent_class)->finalize(obj); } =20 -VIR_ONCE_GLOBAL_INIT(libxlMigrationDstArgs); =20 static void libxlDoMigrateDstReceive(void *opaque) @@ -277,7 +290,7 @@ libxlDoMigrateDstReceive(void *opaque) } args->nsocks =3D 0; VIR_FORCE_CLOSE(recvfd); - virObjectUnref(args); + g_object_unref(args); virDomainObjEndAPI(&vm); } =20 @@ -339,7 +352,7 @@ libxlMigrateDstReceive(virNetSocketPtr sock, } args->nsocks =3D 0; VIR_FORCE_CLOSE(recvfd); - virObjectUnref(args); + g_object_unref(args); } =20 static int @@ -600,8 +613,8 @@ libxlDomainMigrationDstPrepareTunnel3(virConnectPtr dco= nn, if (libxlMigrationDstArgsInitialize() < 0) goto endjob; =20 - if (!(args =3D virObjectNew(libxlMigrationDstArgsClass))) - goto endjob; + args =3D LIBXL_MIGRATION_DST_ARGS( + g_object_new(LIBXL_TYPE_MIGRATION_DST_ARGS, NULL)); =20 args->conn =3D virObjectRef(dconn); args->vm =3D virObjectRef(vm); @@ -634,7 +647,8 @@ libxlDomainMigrationDstPrepareTunnel3(virConnectPtr dco= nn, libxlMigrationCookieFree(mig); VIR_FORCE_CLOSE(dataFD[1]); VIR_FORCE_CLOSE(dataFD[0]); - virObjectUnref(args); + if (args) + g_object_unref(args); /* Remove virDomainObj from domain list */ if (vm) virDomainObjListRemove(driver->domains, vm); @@ -765,8 +779,8 @@ libxlDomainMigrationDstPrepare(virConnectPtr dconn, if (libxlMigrationDstArgsInitialize() < 0) goto endjob; =20 - if (!(args =3D virObjectNew(libxlMigrationDstArgsClass))) - goto endjob; + args =3D LIBXL_MIGRATION_DST_ARGS( + g_object_new(LIBXL_TYPE_MIGRATION_DST_ARGS, NULL)); =20 args->conn =3D virObjectRef(dconn); args->vm =3D virObjectRef(vm); @@ -823,7 +837,8 @@ libxlDomainMigrationDstPrepare(virConnectPtr dconn, VIR_FREE(hostname); else virURIFree(uri); - virObjectUnref(args); + if (args) + g_object_unref(args); virDomainObjEndAPI(&vm); return ret; } --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1585927048; cv=none; d=zohomail.com; s=zohoarc; b=MpVA00Qs0Q8NbVQJICIbji1ScKKftPjEsVyvfpsrWYBsZPeW/VE8PDTgQbiilcDrk7ybbgQ7eHmPBDVpIXQQT3pmDtM66c9fHn2AtVRlHvjk6lMnzAPzbBWHlk3fBp76DzX9qZGPNZz7LuwBKgxJvp0CYv/fd1dFTYTFpMMXvg4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927048; 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=aAqZtdrmXPTB6NIZ0H3bp+xauxjOOpLd06QxYKZiNP8=; b=AWGXU3TnHVGKbDFfTV2AC8kl6ksxdP80vfgu1dj2tRSgM4PzmrAvGH6Eh39cKpy8V7MZyRBBz5kdMlQSffDxf7SFh5wTlXSFsz51SHlX537v7atW8Z+sBWClWr0cbfSrfzN44MLAJnR+Lk7hZCU1vvZiIoHU5kjOnmaQ2KmKCSA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1585927048336872.1627753956111; Fri, 3 Apr 2020 08:17:28 -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-267-_6MdszEUO7atcSsm9UylMw-1; Fri, 03 Apr 2020 11:17:24 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0ED61102CE1B; Fri, 3 Apr 2020 15:17:15 +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 D42DE2C6DF; Fri, 3 Apr 2020 15:17:14 +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 87F8B18033C0; Fri, 3 Apr 2020 15:17:14 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FH9f6028441 for ; Fri, 3 Apr 2020 11:17:09 -0400 Received: by smtp.corp.redhat.com (Postfix) id 97E53123CD57; Fri, 3 Apr 2020 15:17:09 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 93D11123CD4F for ; Fri, 3 Apr 2020 15:17:09 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (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 7AD57101A55A for ; Fri, 3 Apr 2020 15:17:09 +0000 (UTC) Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-325-XARPWb7wOnO_DQnUu-4edQ-1; Fri, 03 Apr 2020 11:17:05 -0400 Received: by mail-wm1-f68.google.com with SMTP id d202so8153401wmd.1 for ; Fri, 03 Apr 2020 08:17:05 -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.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:17:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927047; 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=aAqZtdrmXPTB6NIZ0H3bp+xauxjOOpLd06QxYKZiNP8=; b=Ay7yn0x++KRYuXzPM7RKkvl2xep9dBiQ4iq215G/lD6G8l00vHT7Nn7OlL/RQzxazdKN3h z1DDinH7n0OfkOlFt5mlKijvpdMnVX6tb4iMbCmGZ+in5U+KhcqvyrxtnIhQs2SbuF5A2p j1qX3n+9AViG/ReKBQxr2nDm8vn8Y0s= X-MC-Unique: _6MdszEUO7atcSsm9UylMw-1 X-MC-Unique: XARPWb7wOnO_DQnUu-4edQ-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=y4UW6LYGgmrWZWGnB4+RIgJbva0yfYqDAKZvwiquvR4=; b=JwDiVaVKLggih4SPY0wBM9KnZxUCydI5Kou1ctap9YzkujO4+cIxxdu/xlkp43PRqh 3xG1dbmG/4JgZYxHyIszx70FUXxDpVwA+p0g5F1XCDJIDBstd/+ZTd98oe4vnvyiaugn pB9FStolmFVKIFzKqlRvDoLmaR/Uowpp6M61Nzn7AXkJQOvIUF3pQey8qbK5a67u8qd0 eRr3V90qtTj1fxenjEsLJGXQf/1FRvx5h8KLGhHvj4JDD5ybgQSpxIST9XRWw/5kpCUy u42+tkQ4potyy8gKYAVTYTg93mbpNV/JRF6m/G3KXWhrAlyAon6bSGBCm91+GLdFTl/k Inag== X-Gm-Message-State: AGi0PuZEjcrt8kSJ6l5r4OpMefPd2JHch4LIQMPBLPa1J8bsMSiC4JlH l7E0NnjMyScOxgccYMM0+sTD50pNZzc= X-Google-Smtp-Source: APiQypJP7fdS/dUdzfa+VHNDLxEbY/3XytVCFYX9ocZu3AyMD4vphYPog5NnPahVY9OM4G6+Y3jYiA== X-Received: by 2002:a1c:2203:: with SMTP id i3mr9309223wmi.25.1585927023781; Fri, 03 Apr 2020 08:17:03 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 32/36] qemu: convert qemuBlockJobData to GObject Date: Fri, 3 Apr 2020 17:16:00 +0200 Message-Id: <20200403151604.106616-33-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.78 on 10.11.54.3 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FH9f6028441 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.16 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_blockjob.c | 55 +++++++++++++++++++--------------------- src/qemu/qemu_blockjob.h | 15 +++++++---- src/qemu/qemu_domain.c | 7 +++-- 3 files changed, 41 insertions(+), 36 deletions(-) diff --git a/src/qemu/qemu_blockjob.c b/src/qemu/qemu_blockjob.c index 2032c0c1c5..7d6aabe554 100644 --- a/src/qemu/qemu_blockjob.c +++ b/src/qemu/qemu_blockjob.c @@ -71,8 +71,21 @@ VIR_ENUM_IMPL(qemuBlockjob, "create", "broken"); =20 -static virClassPtr qemuBlockJobDataClass; +G_DEFINE_TYPE(qemuBlockJobData, qemu_block_job_data, G_TYPE_OBJECT); +static void qemuBlockJobDataFinalize(GObject *obj); =20 +static void +qemu_block_job_data_init(qemuBlockJobData *job G_GNUC_UNUSED) +{ +} + +static void +qemu_block_job_data_class_init(qemuBlockJobDataClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D qemuBlockJobDataFinalize; +} =20 static void qemuBlockJobDataDisposeJobdata(qemuBlockJobDataPtr job) @@ -88,9 +101,9 @@ qemuBlockJobDataDisposeJobdata(qemuBlockJobDataPtr job) =20 =20 static void -qemuBlockJobDataDispose(void *obj) +qemuBlockJobDataFinalize(GObject *obj) { - qemuBlockJobDataPtr job =3D obj; + qemuBlockJobDataPtr job =3D QEMU_BLOCK_JOB_DATA(obj); =20 virObjectUnref(job->chain); virObjectUnref(job->mirrorChain); @@ -99,32 +112,17 @@ qemuBlockJobDataDispose(void *obj) =20 g_free(job->name); g_free(job->errmsg); -} =20 - -static int -qemuBlockJobDataOnceInit(void) -{ - if (!VIR_CLASS_NEW(qemuBlockJobData, virClassForObject())) - return -1; - - return 0; + G_OBJECT_CLASS(qemu_block_job_data_parent_class)->finalize(obj); } =20 =20 -VIR_ONCE_GLOBAL_INIT(qemuBlockJobData); - qemuBlockJobDataPtr qemuBlockJobDataNew(qemuBlockJobType type, const char *name) { - g_autoptr(qemuBlockJobData) job =3D NULL; - - if (qemuBlockJobDataInitialize() < 0) - return NULL; - - if (!(job =3D virObjectNew(qemuBlockJobDataClass))) - return NULL; + g_autoptr(qemuBlockJobData) job =3D + QEMU_BLOCK_JOB_DATA(g_object_new(QEMU_TYPE_BLOCK_JOB_DATA, NULL)); =20 job->name =3D g_strdup(name); =20 @@ -180,15 +178,15 @@ qemuBlockJobRegister(qemuBlockJobDataPtr job, return -1; } =20 - if (virHashAddEntry(priv->blockjobs, job->name, virObjectRef(job)) < 0= ) { - virObjectUnref(job); + if (virHashAddEntry(priv->blockjobs, job->name, g_object_ref(job)) < 0= ) { + g_object_unref(job); return -1; } =20 if (disk) { job->disk =3D disk; job->chain =3D virObjectRef(disk->src); - QEMU_DOMAIN_DISK_PRIVATE(disk)->blockjob =3D virObjectRef(job); + QEMU_DOMAIN_DISK_PRIVATE(disk)->blockjob =3D g_object_ref(job); } =20 if (savestatus) @@ -209,8 +207,7 @@ qemuBlockJobUnregister(qemuBlockJobDataPtr job, diskPriv =3D QEMU_DOMAIN_DISK_PRIVATE(job->disk); =20 if (job =3D=3D diskPriv->blockjob) { - virObjectUnref(diskPriv->blockjob); - diskPriv->blockjob =3D NULL; + g_clear_object(&diskPriv->blockjob); } =20 job->disk =3D NULL; @@ -427,7 +424,7 @@ qemuBlockJobDiskGetJob(virDomainDiskDefPtr disk) if (!job) return NULL; =20 - return virObjectRef(job); + return g_object_ref(job); } =20 =20 @@ -466,7 +463,7 @@ qemuBlockJobStartupFinalize(virDomainObjPtr vm, if (job->state =3D=3D QEMU_BLOCKJOB_STATE_NEW) qemuBlockJobUnregister(job, vm); =20 - virObjectUnref(job); + g_object_unref(job); } =20 =20 @@ -1738,7 +1735,7 @@ qemuBlockJobGetByDisk(virDomainDiskDefPtr disk) if (!job) return NULL; =20 - return virObjectRef(job); + return g_object_ref(job); } =20 =20 diff --git a/src/qemu/qemu_blockjob.h b/src/qemu/qemu_blockjob.h index 19498b5bd8..fc36131c67 100644 --- a/src/qemu/qemu_blockjob.h +++ b/src/qemu/qemu_blockjob.h @@ -23,6 +23,7 @@ =20 #include "internal.h" #include "qemu_conf.h" +#include =20 /** * This enum has to map all known block job states from enum virDomainBloc= kJobType @@ -119,11 +120,8 @@ struct _qemuBlockJobBackupData { }; =20 =20 -typedef struct _qemuBlockJobData qemuBlockJobData; -typedef qemuBlockJobData *qemuBlockJobDataPtr; - struct _qemuBlockJobData { - virObject parent; + GObject parent; =20 char *name; =20 @@ -154,7 +152,14 @@ struct _qemuBlockJobData { bool invalidData; /* the job data (except name) is not valid */ bool reconnected; /* internal field for tracking whether job is live a= fter reconnect to qemu */ }; -G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuBlockJobData, virObjectUnref); + +#define QEMU_TYPE_BLOCK_JOB_DATA qemu_block_job_data_get_type() +G_DECLARE_FINAL_TYPE(qemuBlockJobData, + qemu_block_job_data, + QEMU, + BLOCK_JOB_DATA, + GObject); +typedef qemuBlockJobData *qemuBlockJobDataPtr; =20 int qemuBlockJobRegister(qemuBlockJobDataPtr job, diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 2506fa2eea..14b86388b0 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1165,7 +1165,10 @@ qemuDomainDiskPrivateDispose(void *obj) virObjectUnref(priv->migrSource); VIR_FREE(priv->qomName); VIR_FREE(priv->nodeCopyOnRead); - virObjectUnref(priv->blockjob); + if (priv->blockjob) + g_object_unref(priv->blockjob); + + G_OBJECT_CLASS(qemu_domain_disk_private_parent_class)->finalize(obj); } =20 static virClassPtr qemuDomainStorageSourcePrivateClass; @@ -2214,7 +2217,7 @@ qemuDomainObjPrivateAlloc(void *opaque) if (!(priv->devs =3D virChrdevAlloc())) goto error; =20 - if (!(priv->blockjobs =3D virHashCreate(5, virObjectFreeHashData))) + if (!(priv->blockjobs =3D virHashCreate(5, g_object_unref))) goto error; =20 /* agent commands block by default, user can choose different behavior= */ --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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 From nobody Thu May 16 10:17:16 2024 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=1585927062; cv=none; d=zohomail.com; s=zohoarc; b=UX72XEB9GkwWWyPLUmpZReHdZZ+LKXTSTYsJgE1VrcHALPLqva70+rP9r3J1CczuFtB3VdS1ljQFTaBHhpsAklxu9fW2YXYyPansYozm/BTauG+N8RVS3uDhk6a3JsbEDhjEZD0zJ4dQKuprfxcvpIJCM7HrHI8FyjRupixrpcM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927062; 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=oPRlPLVpJ8+BmBcrhEtJuM6zxMGQQ0+2erFjalq7t8k=; b=agZWi/t/qVN0AyhNu/KWuq1xPQE8YaIo1qVpmvEPXVE9D4jjx1LAbTnBnTIq1iqwbiybDwB0kTXBl5dt7cWXtuz1RB/9n5S73/Z4moq2bXKcA/fy8OLD7K6NWFhns63zlNfyhlM1z+Na2XpPkL+ytgf/wnI/XmlZlost39l0cJk= 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 1585927062432285.4289558850371; Fri, 3 Apr 2020 08:17:42 -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-3-s53XEkSQNlynozyVHKSSdA-1; Fri, 03 Apr 2020 11:17:38 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 36366802684; Fri, 3 Apr 2020 15:17:30 +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 07C3F9A257; Fri, 3 Apr 2020 15:17:30 +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 94B2F1800B6C; Fri, 3 Apr 2020 15:17:29 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 033FHIDA028503 for ; Fri, 3 Apr 2020 11:17:18 -0400 Received: by smtp.corp.redhat.com (Postfix) id 5DAEC2166B31; Fri, 3 Apr 2020 15:17:18 +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 582022166B2E for ; Fri, 3 Apr 2020 15:17:12 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (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 B45EC80030D for ; Fri, 3 Apr 2020 15:17:12 +0000 (UTC) Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-158-3rWaHH1dNxC6ck_hfdEsyA-1; Fri, 03 Apr 2020 11:17:09 -0400 Received: by mail-wm1-f65.google.com with SMTP id f6so8120707wmj.3 for ; Fri, 03 Apr 2020 08:17:09 -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.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:17:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927061; 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=oPRlPLVpJ8+BmBcrhEtJuM6zxMGQQ0+2erFjalq7t8k=; b=WaDv0+JCVZsuP4DPTMSE/Bp1iiieQS2ROdy6q1f2aPzoF7hHU0eFKBI8+JeYUYdQv/O8A3 aYvfWGomRHLNwW5ZpupQs/sqwfemLwL80i8GIZefScfNhMGaL2irz1p2ZPt4XaKk/qV7YV R8wDKiU/Sww2sEFt9nnmmykTbsrdHDU= X-MC-Unique: s53XEkSQNlynozyVHKSSdA-1 X-MC-Unique: 3rWaHH1dNxC6ck_hfdEsyA-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=H0BZIB+uxD6fg/HxeYnV9xQpQdZ/TVwZTGHUffL0XCM=; b=THF68rgnMx81Cr8QHuem/w9f5pe/q5eoGga/v5iC4UALZzL8O2thLsZWV/dKy5oWgv gZu6NrzIiLAhXgrqAb8wYwwJCNHSXBy04Ckufa2gAAIx53zgTcQlH20CBSRdcyXGR3X6 b1ejrpI6xnxTxeZVnVOQSTZJ5mFU/3Dc0D/iZ3516kLyBVSq4yFpt7kiBjSmjnruU+yf YeKkQY7xI5gtAnwTsSkIzOvMYNuo+OZ2yfh9aUw22flocDC17bp/kWhbGdqm48PladuE S/2vRNJziWpyJAgrpV5mJcgyfn2YHIonNgeVdsyZMJsva/9xUVMDDLxivTMEYKk8M9V7 OLXw== X-Gm-Message-State: AGi0PuabSe4r/k7KKwZjJBWvCsnb6w7zbPbZbSIs6EKF8IBP18WXp0Tg kwBnlUc+2R//+q4Q9VNPS1UYVyaOmJs= X-Google-Smtp-Source: APiQypKA6/uhH8FzukzJQYAakVXwB/a85SL8Ki3WCeij3Gd190PpjG/KyWRY+T9O/nXgP/v8Oe70hg== X-Received: by 2002:a1c:1f8a:: with SMTP id f132mr9421903wmf.127.1585927026680; Fri, 03 Apr 2020 08:17:06 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 34/36] conf: convert virDomain*Private to GObject Date: Fri, 3 Apr 2020 17:16:02 +0200 Message-Id: <20200403151604.106616-35-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.78 on 10.11.54.6 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FHIDA028503 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.13 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/conf/domain_conf.c | 29 ++-- src/conf/domain_conf.h | 18 +- src/qemu/qemu_domain.c | 347 ++++++++++++++++---------------------- src/qemu/qemu_domain.h | 145 +++++++++++----- src/util/virstoragefile.h | 3 +- 5 files changed, 281 insertions(+), 261 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index f3a8a36eb2..eb5155f612 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1768,7 +1768,8 @@ void virDomainGraphicsDefFree(virDomainGraphicsDefPtr= def) virDomainGraphicsListenDefClear(&def->listens[i]); VIR_FREE(def->listens); =20 - virObjectUnref(def->privateData); + if (def->privateData) + g_object_unref(def->privateData); VIR_FREE(def); } =20 @@ -1816,7 +1817,7 @@ static virDomainVcpuDefPtr virDomainVcpuDefNew(virDomainXMLOptionPtr xmlopt) { virDomainVcpuDefPtr ret =3D NULL; - g_autoptr(virObject) priv =3D NULL; + g_autoptr(GObject) priv =3D NULL; =20 if (xmlopt && xmlopt->privateData.vcpuNew && !(priv =3D xmlopt->privateData.vcpuNew())) @@ -1839,7 +1840,8 @@ virDomainVcpuDefFree(virDomainVcpuDefPtr info) =20 virBitmapFree(info->cpumask); info->cpumask =3D NULL; - virObjectUnref(info->privateData); + if (info->privateData) + g_object_unref(info->privateData); VIR_FREE(info); } =20 @@ -2141,7 +2143,8 @@ virDomainDiskDefFree(virDomainDiskDefPtr def) VIR_FREE(def->blkdeviotune.group_name); VIR_FREE(def->virtio); virDomainDeviceInfoClear(&def->info); - virObjectUnref(def->privateData); + if (def->privateData) + g_object_unref(def->privateData); =20 VIR_FREE(def); } @@ -2343,7 +2346,8 @@ void virDomainFSDefFree(virDomainFSDefPtr def) VIR_FREE(def->dst); virDomainDeviceInfoClear(&def->info); VIR_FREE(def->virtio); - virObjectUnref(def->privateData); + if (def->privateData) + g_object_unref(def->privateData); VIR_FREE(def->binary); =20 VIR_FREE(def); @@ -2404,7 +2408,8 @@ virDomainVsockDefFree(virDomainVsockDefPtr vsock) if (!vsock) return; =20 - virObjectUnref(vsock->privateData); + if (vsock->privateData) + g_object_unref(vsock->privateData); virDomainDeviceInfoClear(&vsock->info); VIR_FREE(vsock); } @@ -2492,7 +2497,8 @@ virDomainNetDefFree(virDomainNetDefPtr def) if (!def) return; virDomainNetDefClear(def); - virObjectUnref(def->privateData); + if (def->privateData) + g_object_unref(def->privateData); VIR_FREE(def); } =20 @@ -2635,7 +2641,8 @@ virDomainChrSourceDefFinalize(GObject *obj) size_t i; =20 virDomainChrSourceDefClear(def); - virObjectUnref(def->privateData); + if (def->privateData) + g_object_unref(def->privateData); =20 if (def->seclabels) { for (i =3D 0; i < def->nseclabels; i++) @@ -2881,7 +2888,8 @@ virDomainVideoDefClear(virDomainVideoDefPtr def) if (def->driver) VIR_FREE(def->driver->vhost_user_binary); VIR_FREE(def->driver); - virObjectUnref(def->privateData); + if (def->privateData) + g_object_unref(def->privateData); =20 memset(def, 0, sizeof(*def)); } @@ -26996,7 +27004,8 @@ virDomainRNGDefFree(virDomainRNGDefPtr def) VIR_FREE(def->source.file); break; case VIR_DOMAIN_RNG_BACKEND_EGD: - virObjectUnref(def->source.chardev); + if (def->source.chardev) + g_object_unref(def->source.chardev); break; case VIR_DOMAIN_RNG_BACKEND_BUILTIN: case VIR_DOMAIN_RNG_BACKEND_LAST: diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index b6b2a72dd4..ab1e763ab1 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -528,7 +528,7 @@ typedef enum { struct _virDomainDiskDef { virStorageSourcePtr src; /* non-NULL. XXX Allow NULL for empty cdrom?= */ =20 - virObjectPtr privateData; + GObject *privateData; =20 int device; /* enum virDomainDiskDevice */ int bus; /* enum virDomainDiskBus */ @@ -837,7 +837,7 @@ struct _virDomainFSDef { virTristateSwitch posix_lock; virTristateSwitch flock; virDomainVirtioOptionsPtr virtio; - virObjectPtr privateData; + GObject *privateData; }; =20 =20 @@ -1056,7 +1056,7 @@ struct _virDomainNetDef { unsigned int mtu; virNetDevCoalescePtr coalesce; virDomainVirtioOptionsPtr virtio; - virObjectPtr privateData; + GObject *privateData; }; =20 typedef enum { @@ -1175,7 +1175,7 @@ struct _virDomainChrSourceReconnectDef { struct _virDomainChrSourceDef { GObject parent; int type; /* virDomainChrType */ - virObjectPtr privateData; + GObject *privateData; union { /* no for null, vc, stdio */ struct { @@ -1478,7 +1478,7 @@ struct _virDomainVideoDriverDef { }; =20 struct _virDomainVideoDef { - virObjectPtr privateData; + GObject *privateData; =20 int type; /* enum virDomainVideoType */ unsigned int ram; /* kibibytes (multiples of 1024) */ @@ -1625,7 +1625,7 @@ struct _virDomainGraphicsListenDef { }; =20 struct _virDomainGraphicsDef { - virObjectPtr privateData; + GObject *privateData; =20 /* Port value discipline: * Value -1 is legacy syntax indicating that it should be auto-allocat= ed. @@ -2303,7 +2303,7 @@ struct _virDomainVcpuDef { =20 virDomainThreadSchedParam sched; =20 - virObjectPtr privateData; + GObject *privateData; }; =20 struct _virDomainBlkiotune { @@ -2401,7 +2401,7 @@ typedef enum { } virDomainVsockModel; =20 struct _virDomainVsockDef { - virObjectPtr privateData; + GObject *privateData; =20 virDomainVsockModel model; unsigned int guest_cid; @@ -2758,7 +2758,7 @@ struct _virDomainDefParserConfig { =20 typedef void *(*virDomainXMLPrivateDataAllocFunc)(void *); typedef void (*virDomainXMLPrivateDataFreeFunc)(void *); -typedef virObjectPtr (*virDomainXMLPrivateDataNewFunc)(void); +typedef GObject* (*virDomainXMLPrivateDataNewFunc)(void); typedef int (*virDomainXMLPrivateDataFormatFunc)(virBufferPtr, virDomainObjPtr); typedef int (*virDomainXMLPrivateDataParseFunc)(xmlXPathContextPtr, diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 14b86388b0..eb0403031d 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1129,38 +1129,32 @@ qemuDomainSecretInfoDestroy(qemuDomainSecretInfoPtr= secinfo) } =20 =20 -static virClassPtr qemuDomainDiskPrivateClass; -static void qemuDomainDiskPrivateDispose(void *obj); +G_DEFINE_TYPE(qemuDomainDiskPrivate, qemu_domain_disk_private, G_TYPE_OBJE= CT); +static void qemuDomainDiskPrivateFinalize(GObject *obj); =20 -static int -qemuDomainDiskPrivateOnceInit(void) +static void +qemu_domain_disk_private_init(qemuDomainDiskPrivate *priv G_GNUC_UNUSED) { - if (!VIR_CLASS_NEW(qemuDomainDiskPrivate, virClassForObject())) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(qemuDomainDiskPrivate); - -static virObjectPtr -qemuDomainDiskPrivateNew(void) +static void +qemu_domain_disk_private_class_init(qemuDomainDiskPrivateClass *klass) { - qemuDomainDiskPrivatePtr priv; - - if (qemuDomainDiskPrivateInitialize() < 0) - return NULL; + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 - if (!(priv =3D virObjectNew(qemuDomainDiskPrivateClass))) - return NULL; + obj->finalize =3D qemuDomainDiskPrivateFinalize; +} =20 - return (virObjectPtr) priv; +static GObject * +qemuDomainDiskPrivateNew(void) +{ + return g_object_new(QEMU_TYPE_DOMAIN_DISK_PRIVATE, NULL); } =20 static void -qemuDomainDiskPrivateDispose(void *obj) +qemuDomainDiskPrivateFinalize(GObject *obj) { - qemuDomainDiskPrivatePtr priv =3D obj; + qemuDomainDiskPrivatePtr priv =3D QEMU_DOMAIN_DISK(obj); =20 virObjectUnref(priv->migrSource); VIR_FREE(priv->qomName); @@ -1171,323 +1165,282 @@ qemuDomainDiskPrivateDispose(void *obj) G_OBJECT_CLASS(qemu_domain_disk_private_parent_class)->finalize(obj); } =20 -static virClassPtr qemuDomainStorageSourcePrivateClass; -static void qemuDomainStorageSourcePrivateDispose(void *obj); +G_DEFINE_TYPE(qemuDomainStorageSourcePrivate, qemu_domain_storage_source_p= rivate, G_TYPE_OBJECT); +static void qemuDomainStorageSourcePrivateFinalize(GObject *obj); =20 -static int -qemuDomainStorageSourcePrivateOnceInit(void) +static void +qemu_domain_storage_source_private_init(qemuDomainStorageSourcePrivate *pr= iv G_GNUC_UNUSED) { - if (!VIR_CLASS_NEW(qemuDomainStorageSourcePrivate, virClassForObject()= )) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(qemuDomainStorageSourcePrivate); - -virObjectPtr -qemuDomainStorageSourcePrivateNew(void) +static void +qemu_domain_storage_source_private_class_init(qemuDomainStorageSourcePriva= teClass *klass) { - qemuDomainStorageSourcePrivatePtr priv; - - if (qemuDomainStorageSourcePrivateInitialize() < 0) - return NULL; + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 - if (!(priv =3D virObjectNew(qemuDomainStorageSourcePrivateClass))) - return NULL; + obj->finalize =3D qemuDomainStorageSourcePrivateFinalize; +} =20 - return (virObjectPtr) priv; +GObject * +qemuDomainStorageSourcePrivateNew(void) +{ + return g_object_new(QEMU_TYPE_DOMAIN_STORAGE_SOURCE_PRIVATE, NULL); } =20 =20 static void -qemuDomainStorageSourcePrivateDispose(void *obj) +qemuDomainStorageSourcePrivateFinalize(GObject *obj) { - qemuDomainStorageSourcePrivatePtr priv =3D obj; + qemuDomainStorageSourcePrivatePtr priv =3D QEMU_DOMAIN_STORAGE_SOURCE(= obj); =20 g_clear_pointer(&priv->secinfo, qemuDomainSecretInfoFree); g_clear_pointer(&priv->encinfo, qemuDomainSecretInfoFree); + + G_OBJECT_CLASS(qemu_domain_storage_source_private_parent_class)->final= ize(obj); } =20 =20 -static virClassPtr qemuDomainVcpuPrivateClass; -static void qemuDomainVcpuPrivateDispose(void *obj); +G_DEFINE_TYPE(qemuDomainVcpuPrivate, qemu_domain_vcpu_private, G_TYPE_OBJE= CT); +static void qemuDomainVcpuPrivateFinalize(GObject *obj); =20 -static int -qemuDomainVcpuPrivateOnceInit(void) +static void +qemu_domain_vcpu_private_init(qemuDomainVcpuPrivate *priv G_GNUC_UNUSED) { - if (!VIR_CLASS_NEW(qemuDomainVcpuPrivate, virClassForObject())) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(qemuDomainVcpuPrivate); - -static virObjectPtr -qemuDomainVcpuPrivateNew(void) +static void +qemu_domain_vcpu_private_class_init(qemuDomainVcpuPrivateClass *klass) { - qemuDomainVcpuPrivatePtr priv; - - if (qemuDomainVcpuPrivateInitialize() < 0) - return NULL; + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 - if (!(priv =3D virObjectNew(qemuDomainVcpuPrivateClass))) - return NULL; + obj->finalize =3D qemuDomainVcpuPrivateFinalize; +} =20 - return (virObjectPtr) priv; +static GObject * +qemuDomainVcpuPrivateNew(void) +{ + return g_object_new(QEMU_TYPE_DOMAIN_VCPU_PRIVATE, NULL); } =20 =20 static void -qemuDomainVcpuPrivateDispose(void *obj) +qemuDomainVcpuPrivateFinalize(GObject *obj) { - qemuDomainVcpuPrivatePtr priv =3D obj; + qemuDomainVcpuPrivatePtr priv =3D QEMU_DOMAIN_VCPU(obj); =20 VIR_FREE(priv->type); VIR_FREE(priv->alias); virJSONValueFree(priv->props); - return; + + G_OBJECT_CLASS(qemu_domain_vcpu_private_parent_class)->finalize(obj); } =20 =20 -static virClassPtr qemuDomainChrSourcePrivateClass; -static void qemuDomainChrSourcePrivateDispose(void *obj); +G_DEFINE_TYPE(qemuDomainChrSourcePrivate, qemu_domain_chr_source_private, = G_TYPE_OBJECT); +static void qemuDomainChrSourcePrivateFinalize(GObject *obj); =20 -static int -qemuDomainChrSourcePrivateOnceInit(void) +static void +qemu_domain_chr_source_private_init(qemuDomainChrSourcePrivate *priv G_GNU= C_UNUSED) { - if (!VIR_CLASS_NEW(qemuDomainChrSourcePrivate, virClassForObject())) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(qemuDomainChrSourcePrivate); - -static virObjectPtr -qemuDomainChrSourcePrivateNew(void) +static void +qemu_domain_chr_source_private_class_init(qemuDomainChrSourcePrivateClass = *klass) { - qemuDomainChrSourcePrivatePtr priv; - - if (qemuDomainChrSourcePrivateInitialize() < 0) - return NULL; + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 - if (!(priv =3D virObjectNew(qemuDomainChrSourcePrivateClass))) - return NULL; + obj->finalize =3D qemuDomainChrSourcePrivateFinalize; +} =20 - return (virObjectPtr) priv; +static GObject * +qemuDomainChrSourcePrivateNew(void) +{ + return g_object_new(QEMU_TYPE_DOMAIN_CHR_SOURCE_PRIVATE, NULL); } =20 =20 static void -qemuDomainChrSourcePrivateDispose(void *obj) +qemuDomainChrSourcePrivateFinalize(GObject *obj) { - qemuDomainChrSourcePrivatePtr priv =3D obj; + qemuDomainChrSourcePrivatePtr priv =3D QEMU_DOMAIN_CHR_SOURCE(obj); =20 g_clear_pointer(&priv->secinfo, qemuDomainSecretInfoFree); + + G_OBJECT_CLASS(qemu_domain_chr_source_private_parent_class)->finalize(= obj); } =20 =20 -static virClassPtr qemuDomainVsockPrivateClass; -static void qemuDomainVsockPrivateDispose(void *obj); +G_DEFINE_TYPE(qemuDomainVsockPrivate, qemu_domain_vsock_private, G_TYPE_OB= JECT); +static void qemuDomainVsockPrivateFinalize(GObject *obj); =20 -static int -qemuDomainVsockPrivateOnceInit(void) +static void +qemu_domain_vsock_private_init(qemuDomainVsockPrivate *priv) { - if (!VIR_CLASS_NEW(qemuDomainVsockPrivate, virClassForObject())) - return -1; - - return 0; + priv->vhostfd =3D -1; } =20 -VIR_ONCE_GLOBAL_INIT(qemuDomainVsockPrivate); - -static virObjectPtr -qemuDomainVsockPrivateNew(void) +static void +qemu_domain_vsock_private_class_init(qemuDomainVsockPrivateClass *klass) { - qemuDomainVsockPrivatePtr priv; - - if (qemuDomainVsockPrivateInitialize() < 0) - return NULL; - - if (!(priv =3D virObjectNew(qemuDomainVsockPrivateClass))) - return NULL; + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 - priv->vhostfd =3D -1; + obj->finalize =3D qemuDomainVsockPrivateFinalize; +} =20 - return (virObjectPtr) priv; +static GObject * +qemuDomainVsockPrivateNew(void) +{ + return g_object_new(QEMU_TYPE_DOMAIN_VSOCK_PRIVATE, NULL); } =20 =20 static void -qemuDomainVsockPrivateDispose(void *obj G_GNUC_UNUSED) +qemuDomainVsockPrivateFinalize(GObject *obj) { - qemuDomainVsockPrivatePtr priv =3D obj; + qemuDomainVsockPrivatePtr priv =3D QEMU_DOMAIN_VSOCK(obj); =20 VIR_FORCE_CLOSE(priv->vhostfd); + + G_OBJECT_CLASS(qemu_domain_vsock_private_parent_class)->finalize(obj); } =20 =20 -static virClassPtr qemuDomainGraphicsPrivateClass; -static void qemuDomainGraphicsPrivateDispose(void *obj); +G_DEFINE_TYPE(qemuDomainGraphicsPrivate, qemu_domain_graphics_private, G_T= YPE_OBJECT); +static void qemuDomainGraphicsPrivateFinalize(GObject *obj); =20 -static int -qemuDomainGraphicsPrivateOnceInit(void) +static void +qemu_domain_graphics_private_init(qemuDomainGraphicsPrivate *priv G_GNUC_U= NUSED) { - if (!VIR_CLASS_NEW(qemuDomainGraphicsPrivate, virClassForObject())) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(qemuDomainGraphicsPrivate); - -static virObjectPtr -qemuDomainGraphicsPrivateNew(void) +static void +qemu_domain_graphics_private_class_init(qemuDomainGraphicsPrivateClass *kl= ass) { - qemuDomainGraphicsPrivatePtr priv; - - if (qemuDomainGraphicsPrivateInitialize() < 0) - return NULL; + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 - if (!(priv =3D virObjectNew(qemuDomainGraphicsPrivateClass))) - return NULL; + obj->finalize =3D qemuDomainGraphicsPrivateFinalize; +} =20 - return (virObjectPtr) priv; +static GObject * +qemuDomainGraphicsPrivateNew(void) +{ + return g_object_new(QEMU_TYPE_DOMAIN_GRAPHICS_PRIVATE, NULL); } =20 =20 static void -qemuDomainGraphicsPrivateDispose(void *obj) +qemuDomainGraphicsPrivateFinalize(GObject *obj) { - qemuDomainGraphicsPrivatePtr priv =3D obj; + qemuDomainGraphicsPrivatePtr priv =3D QEMU_DOMAIN_GRAPHICS(obj); =20 VIR_FREE(priv->tlsAlias); g_clear_pointer(&priv->secinfo, qemuDomainSecretInfoFree); -} =20 + G_OBJECT_CLASS(qemu_domain_graphics_private_parent_class)->finalize(ob= j); +} =20 -static virClassPtr qemuDomainNetworkPrivateClass; -static void qemuDomainNetworkPrivateDispose(void *obj); =20 +G_DEFINE_TYPE(qemuDomainNetworkPrivate, qemu_domain_network_private, G_TYP= E_OBJECT); +static void qemuDomainNetworkPrivateFinalize(GObject *obj); =20 -static int -qemuDomainNetworkPrivateOnceInit(void) +static void +qemu_domain_network_private_init(qemuDomainNetworkPrivate *priv G_GNUC_UNU= SED) { - if (!VIR_CLASS_NEW(qemuDomainNetworkPrivate, virClassForObject())) - return -1; - - return 0; } =20 +static void +qemu_domain_network_private_class_init(qemuDomainNetworkPrivateClass *klas= s) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 -VIR_ONCE_GLOBAL_INIT(qemuDomainNetworkPrivate); + obj->finalize =3D qemuDomainNetworkPrivateFinalize; +} =20 =20 -static virObjectPtr +static GObject * qemuDomainNetworkPrivateNew(void) { - qemuDomainNetworkPrivatePtr priv; - - if (qemuDomainNetworkPrivateInitialize() < 0) - return NULL; - - if (!(priv =3D virObjectNew(qemuDomainNetworkPrivateClass))) - return NULL; - - return (virObjectPtr) priv; + return g_object_new(QEMU_TYPE_DOMAIN_NETWORK_PRIVATE, NULL); } =20 =20 static void -qemuDomainNetworkPrivateDispose(void *obj G_GNUC_UNUSED) +qemuDomainNetworkPrivateFinalize(GObject *obj) { - qemuDomainNetworkPrivatePtr priv =3D obj; + qemuDomainNetworkPrivatePtr priv =3D QEMU_DOMAIN_NETWORK(obj); =20 qemuSlirpFree(priv->slirp); -} =20 + G_OBJECT_CLASS(qemu_domain_network_private_parent_class)->finalize(obj= ); +} =20 -static virClassPtr qemuDomainFSPrivateClass; -static void qemuDomainFSPrivateDispose(void *obj); =20 +G_DEFINE_TYPE(qemuDomainFSPrivate, qemu_domain_fs_private, G_TYPE_OBJECT); +static void qemuDomainFSPrivateFinalize(GObject *obj); =20 -static int -qemuDomainFSPrivateOnceInit(void) +static void +qemu_domain_fs_private_init(qemuDomainFSPrivate *priv G_GNUC_UNUSED) { - if (!VIR_CLASS_NEW(qemuDomainFSPrivate, virClassForObject())) - return -1; - - return 0; } =20 +static void +qemu_domain_fs_private_class_init(qemuDomainFSPrivateClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 -VIR_ONCE_GLOBAL_INIT(qemuDomainFSPrivate); - + obj->finalize =3D qemuDomainFSPrivateFinalize; +} =20 -static virObjectPtr +static GObject * qemuDomainFSPrivateNew(void) { - qemuDomainFSPrivatePtr priv; - - if (qemuDomainFSPrivateInitialize() < 0) - return NULL; - - if (!(priv =3D virObjectNew(qemuDomainFSPrivateClass))) - return NULL; - - return (virObjectPtr) priv; + return g_object_new(QEMU_TYPE_DOMAIN_FS_PRIVATE, NULL); } =20 =20 static void -qemuDomainFSPrivateDispose(void *obj) +qemuDomainFSPrivateFinalize(GObject *obj) { - qemuDomainFSPrivatePtr priv =3D obj; + qemuDomainFSPrivatePtr priv =3D QEMU_DOMAIN_FS(obj); =20 g_free(priv->vhostuser_fs_sock); + + G_OBJECT_CLASS(qemu_domain_fs_private_parent_class)->finalize(obj); } =20 -static virClassPtr qemuDomainVideoPrivateClass; -static void qemuDomainVideoPrivateDispose(void *obj); +G_DEFINE_TYPE(qemuDomainVideoPrivate, qemu_domain_video_private, G_TYPE_OB= JECT); +static void qemuDomainVideoPrivateFinalize(GObject *obj); =20 +static void +qemu_domain_video_private_init(qemuDomainVideoPrivate *priv) +{ + priv->vhost_user_fd =3D -1; +} =20 -static int -qemuDomainVideoPrivateOnceInit(void) +static void +qemu_domain_video_private_class_init(qemuDomainVideoPrivateClass *klass) { - if (!VIR_CLASS_NEW(qemuDomainVideoPrivate, virClassForObject())) - return -1; + GObjectClass *obj =3D G_OBJECT_CLASS(klass); =20 - return 0; + obj->finalize =3D qemuDomainVideoPrivateFinalize; } =20 -VIR_ONCE_GLOBAL_INIT(qemuDomainVideoPrivate); =20 - -static virObjectPtr +static GObject * qemuDomainVideoPrivateNew(void) { - qemuDomainVideoPrivatePtr priv; - - if (qemuDomainVideoPrivateInitialize() < 0) - return NULL; - - if (!(priv =3D virObjectNew(qemuDomainVideoPrivateClass))) - return NULL; - - priv->vhost_user_fd =3D -1; - - return (virObjectPtr) priv; + return g_object_new(QEMU_TYPE_DOMAIN_VIDEO_PRIVATE, NULL); } =20 =20 static void -qemuDomainVideoPrivateDispose(void *obj) +qemuDomainVideoPrivateFinalize(GObject *obj) { - qemuDomainVideoPrivatePtr priv =3D obj; + qemuDomainVideoPrivatePtr priv =3D QEMU_DOMAIN_VIDEO(obj); =20 VIR_FORCE_CLOSE(priv->vhost_user_fd); + + G_OBJECT_CLASS(qemu_domain_video_private_parent_class)->finalize(obj); } =20 =20 diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index cf19f4d101..7dbd3ffc69 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -433,13 +433,8 @@ struct _qemuDomainObjPrivate { #define QEMU_DOMAIN_PRIVATE(vm) \ ((qemuDomainObjPrivatePtr) (vm)->privateData) =20 -#define QEMU_DOMAIN_DISK_PRIVATE(disk) \ - ((qemuDomainDiskPrivatePtr) (disk)->privateData) - -typedef struct _qemuDomainDiskPrivate qemuDomainDiskPrivate; -typedef qemuDomainDiskPrivate *qemuDomainDiskPrivatePtr; struct _qemuDomainDiskPrivate { - virObject parent; + GObject parent; =20 /* ideally we want a smarter way to interlock block jobs on single qem= u disk * in the future, but for now we just disallow any concurrent job on a @@ -457,13 +452,20 @@ struct _qemuDomainDiskPrivate { char *nodeCopyOnRead; /* nodename of the disk-wide copy-on-read blockd= ev layer */ }; =20 -#define QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(src) \ - ((qemuDomainStorageSourcePrivatePtr) (src)->privateData) +#define QEMU_TYPE_DOMAIN_DISK_PRIVATE qemu_domain_disk_private_get_type() +G_DECLARE_FINAL_TYPE(qemuDomainDiskPrivate, + qemu_domain_disk_private, + QEMU, + DOMAIN_DISK, + GObject); +typedef qemuDomainDiskPrivate *qemuDomainDiskPrivatePtr; + +#define QEMU_DOMAIN_DISK_PRIVATE(disk) \ + ((qemuDomainDiskPrivatePtr) (disk)->privateData) + =20 -typedef struct _qemuDomainStorageSourcePrivate qemuDomainStorageSourcePriv= ate; -typedef qemuDomainStorageSourcePrivate *qemuDomainStorageSourcePrivatePtr; struct _qemuDomainStorageSourcePrivate { - virObject parent; + GObject parent; =20 /* data required for authentication to the storage source */ qemuDomainSecretInfoPtr secinfo; @@ -475,12 +477,23 @@ struct _qemuDomainStorageSourcePrivate { qemuDomainSecretInfoPtr httpcookie; }; =20 -virObjectPtr qemuDomainStorageSourcePrivateNew(void); +#define QEMU_TYPE_DOMAIN_STORAGE_SOURCE_PRIVATE qemu_domain_storage_source= _private_get_type() +G_DECLARE_FINAL_TYPE(qemuDomainStorageSourcePrivate, + qemu_domain_storage_source_private, + QEMU, + DOMAIN_STORAGE_SOURCE, + GObject); +typedef qemuDomainStorageSourcePrivate *qemuDomainStorageSourcePrivatePtr; + +#define QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(src) \ + ((qemuDomainStorageSourcePrivatePtr) (src)->privateData) + + +GObject *qemuDomainStorageSourcePrivateNew(void); + =20 -typedef struct _qemuDomainVcpuPrivate qemuDomainVcpuPrivate; -typedef qemuDomainVcpuPrivate *qemuDomainVcpuPrivatePtr; struct _qemuDomainVcpuPrivate { - virObject parent; + GObject parent; =20 pid_t tid; /* vcpu thread id */ int enable_id; /* order in which the vcpus were enabled in qemu */ @@ -500,6 +513,14 @@ struct _qemuDomainVcpuPrivate { int vcpus; }; =20 +#define QEMU_TYPE_DOMAIN_VCPU_PRIVATE qemu_domain_vcpu_private_get_type() +G_DECLARE_FINAL_TYPE(qemuDomainVcpuPrivate, + qemu_domain_vcpu_private, + QEMU, + DOMAIN_VCPU, + GObject); +typedef qemuDomainVcpuPrivate *qemuDomainVcpuPrivatePtr; + #define QEMU_DOMAIN_VCPU_PRIVATE(vcpu) \ ((qemuDomainVcpuPrivatePtr) (vcpu)->privateData) =20 @@ -513,77 +534,113 @@ struct qemuDomainDiskInfo { char *nodename; }; =20 -#define QEMU_DOMAIN_CHR_SOURCE_PRIVATE(dev) \ - ((qemuDomainChrSourcePrivatePtr) (dev)->privateData) - -typedef struct _qemuDomainChrSourcePrivate qemuDomainChrSourcePrivate; -typedef qemuDomainChrSourcePrivate *qemuDomainChrSourcePrivatePtr; struct _qemuDomainChrSourcePrivate { - virObject parent; + GObject parent; =20 /* for char devices using secret * NB: *not* to be written to qemu domain object XML */ qemuDomainSecretInfoPtr secinfo; }; =20 +#define QEMU_TYPE_DOMAIN_CHR_SOURCE_PRIVATE qemu_domain_chr_source_private= _get_type() +G_DECLARE_FINAL_TYPE(qemuDomainChrSourcePrivate, + qemu_domain_chr_source_private, + QEMU, + DOMAIN_CHR_SOURCE, + GObject); +typedef qemuDomainChrSourcePrivate *qemuDomainChrSourcePrivatePtr; + +#define QEMU_DOMAIN_CHR_SOURCE_PRIVATE(dev) \ + ((qemuDomainChrSourcePrivatePtr) (dev)->privateData) + =20 -typedef struct _qemuDomainVsockPrivate qemuDomainVsockPrivate; -typedef qemuDomainVsockPrivate *qemuDomainVsockPrivatePtr; struct _qemuDomainVsockPrivate { - virObject parent; + GObject parent; =20 int vhostfd; }; =20 +#define QEMU_TYPE_DOMAIN_VSOCK_PRIVATE qemu_domain_vsock_private_get_type() +G_DECLARE_FINAL_TYPE(qemuDomainVsockPrivate, + qemu_domain_vsock_private, + QEMU, + DOMAIN_VSOCK, + GObject); +typedef qemuDomainVsockPrivate *qemuDomainVsockPrivatePtr; =20 -#define QEMU_DOMAIN_VIDEO_PRIVATE(dev) \ - ((qemuDomainVideoPrivatePtr) (dev)->privateData) =20 -typedef struct _qemuDomainVideoPrivate qemuDomainVideoPrivate; -typedef qemuDomainVideoPrivate *qemuDomainVideoPrivatePtr; struct _qemuDomainVideoPrivate { - virObject parent; + GObject parent; =20 int vhost_user_fd; }; =20 +#define QEMU_TYPE_DOMAIN_VIDEO_PRIVATE qemu_domain_video_private_get_type() +G_DECLARE_FINAL_TYPE(qemuDomainVideoPrivate, + qemu_domain_video_private, + QEMU, + DOMAIN_VIDEO, + GObject); +typedef qemuDomainVideoPrivate *qemuDomainVideoPrivatePtr; + +#define QEMU_DOMAIN_VIDEO_PRIVATE(dev) \ + ((qemuDomainVideoPrivatePtr) (dev)->privateData) =20 -#define QEMU_DOMAIN_GRAPHICS_PRIVATE(dev) \ - ((qemuDomainGraphicsPrivatePtr) (dev)->privateData) =20 -typedef struct _qemuDomainGraphicsPrivate qemuDomainGraphicsPrivate; -typedef qemuDomainGraphicsPrivate *qemuDomainGraphicsPrivatePtr; struct _qemuDomainGraphicsPrivate { - virObject parent; + GObject parent; =20 char *tlsAlias; qemuDomainSecretInfoPtr secinfo; }; =20 +#define QEMU_TYPE_DOMAIN_GRAPHICS_PRIVATE qemu_domain_graphics_private_get= _type() +G_DECLARE_FINAL_TYPE(qemuDomainGraphicsPrivate, + qemu_domain_graphics_private, + QEMU, + DOMAIN_GRAPHICS, + GObject); +typedef qemuDomainGraphicsPrivate *qemuDomainGraphicsPrivatePtr; + +#define QEMU_DOMAIN_GRAPHICS_PRIVATE(dev) \ + ((qemuDomainGraphicsPrivatePtr) (dev)->privateData) =20 -#define QEMU_DOMAIN_NETWORK_PRIVATE(dev) \ - ((qemuDomainNetworkPrivatePtr) (dev)->privateData) =20 -typedef struct _qemuDomainNetworkPrivate qemuDomainNetworkPrivate; -typedef qemuDomainNetworkPrivate *qemuDomainNetworkPrivatePtr; struct _qemuDomainNetworkPrivate { - virObject parent; + GObject parent; =20 qemuSlirpPtr slirp; }; =20 +#define QEMU_TYPE_DOMAIN_NETWORK_PRIVATE qemu_domain_network_private_get_t= ype() +G_DECLARE_FINAL_TYPE(qemuDomainNetworkPrivate, + qemu_domain_network_private, + QEMU, + DOMAIN_NETWORK, + GObject); +typedef qemuDomainNetworkPrivate *qemuDomainNetworkPrivatePtr; + +#define QEMU_DOMAIN_NETWORK_PRIVATE(dev) \ + ((qemuDomainNetworkPrivatePtr) (dev)->privateData) =20 -#define QEMU_DOMAIN_FS_PRIVATE(dev) \ - ((qemuDomainFSPrivatePtr) (dev)->privateData) =20 -typedef struct _qemuDomainFSPrivate qemuDomainFSPrivate; -typedef qemuDomainFSPrivate *qemuDomainFSPrivatePtr; struct _qemuDomainFSPrivate { - virObject parent; + GObject parent; =20 char *vhostuser_fs_sock; }; =20 +#define QEMU_TYPE_DOMAIN_FS_PRIVATE qemu_domain_fs_private_get_type() +G_DECLARE_FINAL_TYPE(qemuDomainFSPrivate, + qemu_domain_fs_private, + QEMU, + DOMAIN_FS, + GObject); +typedef qemuDomainFSPrivate *qemuDomainFSPrivatePtr; + +#define QEMU_DOMAIN_FS_PRIVATE(dev) \ + ((qemuDomainFSPrivatePtr) (dev)->privateData) + =20 typedef enum { QEMU_PROCESS_EVENT_WATCHDOG =3D 0, diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h index 7939c09cd5..a744bcbf5c 100644 --- a/src/util/virstoragefile.h +++ b/src/util/virstoragefile.h @@ -30,6 +30,7 @@ #include "virsecret.h" #include "virenum.h" #include "virpci.h" +#include =20 /* Minimum header size required to probe all known formats with * virStorageFileProbeFormat, or obtain metadata from a known format. @@ -304,7 +305,7 @@ struct _virStorageSource { =20 virStorageSourceInitiatorDef initiator; =20 - virObjectPtr privateData; + GObject *privateData; =20 int format; /* virStorageFileFormat in domain backing chains, but * pool-specific enum for storage volumes */ --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 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=1585927052; cv=none; d=zohomail.com; s=zohoarc; b=mTFvy3Yf+ysBOfHRATsoRYG0ChWur8dWQ0EFoqY2gOTuAkzcwORvy6AXBlXLCr4+2hY00ZNh3/AXdTwfyjaubxlYyuEeEXIkCm9s5aVASa3cG6f0s8EoPlkcLxeXr+sdIR9zNlA9jAxYH/Rrs1DF3LoAnf5cBUKuDNdmxOujp0U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927052; 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=xKpfpiwqtLu4C4JdApOfLJe/EQvw+CQ1zdevimubV+k=; b=ikxbf09BvZQ31RvHOpYOccZERVouxAK6Uvj7Al8eZemhhcSz7JkYIz0Nm6zf5Leg0AmGRxRczMBBfgXITNXmhtye7wrx6RXyVI/5g82XV/BkZVJqSCBA3gHzVEjKJ1yq9tb90aiA5aF4LB1nqGc6+Mc1NhBBVqQqoS6wmwqoFpQ= 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 158592705238827.87509891647187; Fri, 3 Apr 2020 08:17:32 -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-215-5vdYsxznN5CCGCSi4bEpTg-1; Fri, 03 Apr 2020 11:17:25 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 770A718C35B2; Fri, 3 Apr 2020 15:17:18 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4C3E596B9B; Fri, 3 Apr 2020 15:17:18 +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 011914E47F; Fri, 3 Apr 2020 15:17: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 033FHCxg028456 for ; Fri, 3 Apr 2020 11:17:12 -0400 Received: by smtp.corp.redhat.com (Postfix) id 689872028DCC; Fri, 3 Apr 2020 15:17:12 +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 64B7C2028DCB for ; Fri, 3 Apr 2020 15:17:12 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (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 464B580030D for ; Fri, 3 Apr 2020 15:17:12 +0000 (UTC) Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-76-HVDdp2D_Os6fcnWUsxGLKA-1; Fri, 03 Apr 2020 11:17:09 -0400 Received: by mail-wr1-f47.google.com with SMTP id t7so8925940wrw.12 for ; Fri, 03 Apr 2020 08:17:09 -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.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:17:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927051; 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=xKpfpiwqtLu4C4JdApOfLJe/EQvw+CQ1zdevimubV+k=; b=Mpj1DbmBs0wwz/pqzkiDIM5y2WT+72WxDqynqlJRFfOiwei/vnEg2S3CGQrCAsF8Rq1X/q p3muVntDk9iuNt6spCGV97YVFebXqIlCWooJHVd0Il5c9AbW7DheLuW0Y99NaPNqAgIwIW X8B6wjGX+XDcGWloXjgeLnL2j9Leixs= X-MC-Unique: 5vdYsxznN5CCGCSi4bEpTg-1 X-MC-Unique: HVDdp2D_Os6fcnWUsxGLKA-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=9Gc9mS5LqP9XPozkOin6yW0hVXGCt57n678JFnqj8po=; b=gR025emuxYn/Ago+qiHCyR/0607U3xAnB/GCaDi6GpEwQC0WW7hDUvMR1zXzAuTSEa uuag1b2ZaiglJNl1t8BC3bg6y4lI85SY8+4iB53mIWuA/gxkDYVqGh37hDWz6wL8zCb3 nxPTQoF/ta50IihyOxccQs3cv3BUfSw3JZGUrpu5wWpAm6nEfJ4vX+oZ7X8lXg7d+ttA xVYFLqCtfEiRhAlXPay25aXHBiR3D0a9aglNi6dtiDtHin+Y3nY2YsAkes9UZLKy8cyi ysojoCBLDTqEt2HHMckafRs37787FMw1WiYqHLNxhM5Ng4IV8f1bnm37756RCOv8PVPd GRmg== X-Gm-Message-State: AGi0Pub81HfdYDy4M/pwdqlqWsQcmrm08TC4+y4bc4JugBcXcGDnXZf6 T+OkK/WycDMFabv/SbifjYfEUuePY3w= X-Google-Smtp-Source: APiQypIyn4GgDJdRO/7nbffgfPfgTmXV5XkpOpIbK5j6i3fJivS+fDeMSdxC8ZWkEmQ6tpRi+cG1xA== X-Received: by 2002:a5d:540c:: with SMTP id g12mr10117766wrv.178.1585927027745; Fri, 03 Apr 2020 08:17:07 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 35/36] conf: convert virSaveCookie to GObject Date: Fri, 3 Apr 2020 17:16:03 +0200 Message-Id: <20200403151604.106616-36-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.78 on 10.11.54.4 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 033FHCxg028456 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.15 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/conf/snapshot_conf.c | 3 ++- src/conf/snapshot_conf.h | 2 +- src/conf/virsavecookie.c | 10 ++++---- src/conf/virsavecookie.h | 14 +++++------ src/qemu/qemu_domain.c | 53 +++++++++++++++++++--------------------- src/qemu/qemu_domain.h | 12 ++++++--- src/qemu/qemu_driver.c | 8 +++--- 7 files changed, 52 insertions(+), 50 deletions(-) diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c index 37b5c2fdf7..b58c00e86e 100644 --- a/src/conf/snapshot_conf.c +++ b/src/conf/snapshot_conf.c @@ -129,7 +129,8 @@ virDomainSnapshotDefDispose(void *obj) for (i =3D 0; i < def->ndisks; i++) virDomainSnapshotDiskDefClear(&def->disks[i]); VIR_FREE(def->disks); - virObjectUnref(def->cookie); + if (def->cookie) + g_object_unref(def->cookie); } =20 int diff --git a/src/conf/snapshot_conf.h b/src/conf/snapshot_conf.h index b5b1ef2718..97a7b3b4e5 100644 --- a/src/conf/snapshot_conf.h +++ b/src/conf/snapshot_conf.h @@ -84,7 +84,7 @@ struct _virDomainSnapshotDef { size_t ndisks; /* should not exceed dom->ndisks */ virDomainSnapshotDiskDef *disks; =20 - virObjectPtr cookie; + GObject *cookie; }; =20 G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainSnapshotDef, virObjectUnref); diff --git a/src/conf/virsavecookie.c b/src/conf/virsavecookie.c index bdc22bb324..6cdfa4fc5a 100644 --- a/src/conf/virsavecookie.c +++ b/src/conf/virsavecookie.c @@ -34,7 +34,7 @@ VIR_LOG_INIT("conf.savecookie"); =20 static int virSaveCookieParseNode(xmlXPathContextPtr ctxt, - virObjectPtr *obj, + GObject **obj, virSaveCookieCallbacksPtr saveCookie) { *obj =3D NULL; @@ -54,7 +54,7 @@ virSaveCookieParseNode(xmlXPathContextPtr ctxt, =20 int virSaveCookieParse(xmlXPathContextPtr ctxt, - virObjectPtr *obj, + GObject **obj, virSaveCookieCallbacksPtr saveCookie) { xmlNodePtr node =3D ctxt->node; @@ -77,7 +77,7 @@ virSaveCookieParse(xmlXPathContextPtr ctxt, =20 int virSaveCookieParseString(const char *xml, - virObjectPtr *obj, + GObject **obj, virSaveCookieCallbacksPtr saveCookie) { xmlDocPtr doc =3D NULL; @@ -105,7 +105,7 @@ virSaveCookieParseString(const char *xml, =20 int virSaveCookieFormatBuf(virBufferPtr buf, - virObjectPtr obj, + GObject *obj, virSaveCookieCallbacksPtr saveCookie) { if (!obj || !saveCookie || !saveCookie->format) @@ -125,7 +125,7 @@ virSaveCookieFormatBuf(virBufferPtr buf, =20 =20 char * -virSaveCookieFormat(virObjectPtr obj, +virSaveCookieFormat(GObject *obj, virSaveCookieCallbacksPtr saveCookie) { virBuffer buf =3D VIR_BUFFER_INITIALIZER; diff --git a/src/conf/virsavecookie.h b/src/conf/virsavecookie.h index eafffbed66..b17701c727 100644 --- a/src/conf/virsavecookie.h +++ b/src/conf/virsavecookie.h @@ -23,14 +23,14 @@ #include =20 #include "internal.h" -#include "virobject.h" #include "virbuffer.h" +#include =20 =20 typedef int (*virSaveCookieParseFunc)(xmlXPathContextPtr ctxt, - virObjectPtr *obj); + GObject **obj); typedef int (*virSaveCookieFormatFunc)(virBufferPtr buf, - virObjectPtr obj); + GObject *obj); =20 typedef struct _virSaveCookieCallbacks virSaveCookieCallbacks; typedef virSaveCookieCallbacks *virSaveCookieCallbacksPtr; @@ -42,19 +42,19 @@ struct _virSaveCookieCallbacks { =20 int virSaveCookieParse(xmlXPathContextPtr ctxt, - virObjectPtr *obj, + GObject **obj, virSaveCookieCallbacksPtr saveCookie); =20 int virSaveCookieParseString(const char *xml, - virObjectPtr *obj, + GObject **obj, virSaveCookieCallbacksPtr saveCookie); =20 int virSaveCookieFormatBuf(virBufferPtr buf, - virObjectPtr obj, + GObject *obj, virSaveCookieCallbacksPtr saveCookie); =20 char * -virSaveCookieFormat(virObjectPtr obj, +virSaveCookieFormat(GObject *obj, virSaveCookieCallbacksPtr saveCookie); diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index eb0403031d..a12ecc0e25 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -162,21 +162,12 @@ struct _qemuDomainLogContext { }; =20 G_DEFINE_TYPE(qemuDomainLogContext, qemu_domain_log_context, G_TYPE_OBJECT= ); -static virClassPtr qemuDomainSaveCookieClass; +G_DEFINE_TYPE(qemuDomainSaveCookie, qemu_domain_save_cookie, G_TYPE_OBJECT= ); =20 static void qemuDomainLogContextFinalize(GObject *obj); -static void qemuDomainSaveCookieDispose(void *obj); +static void qemuDomainSaveCookieFinalize(GObject *obj); =20 =20 -static int -qemuDomainOnceInit(void) -{ - if (!VIR_CLASS_NEW(qemuDomainSaveCookie, virClassForObject())) - return -1; - - return 0; -} - static void qemu_domain_log_context_init(qemuDomainLogContext *logctxt G_G= NUC_UNUSED) { } @@ -188,8 +179,6 @@ static void qemu_domain_log_context_class_init(qemuDoma= inLogContextClass *klass) obj->finalize =3D qemuDomainLogContextFinalize; } =20 -VIR_ONCE_GLOBAL_INIT(qemuDomain); - static void qemuDomainLogContextFinalize(GObject *object) { @@ -203,6 +192,20 @@ qemuDomainLogContextFinalize(GObject *object) G_OBJECT_CLASS(qemu_domain_log_context_parent_class)->finalize(object); } =20 +static void +qemu_domain_save_cookie_init(qemuDomainSaveCookie *cookie G_GNUC_UNUSED) +{ +} + +static void +qemu_domain_save_cookie_class_init(qemuDomainSaveCookieClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D qemuDomainSaveCookieFinalize; +} + + const char * qemuDomainAsyncJobPhaseToString(qemuDomainAsyncJob job, int phase G_GNUC_UNUSED) @@ -12736,13 +12739,15 @@ qemuDomainGetStorageSourceByDevstr(const char *de= vstr, =20 =20 static void -qemuDomainSaveCookieDispose(void *obj) +qemuDomainSaveCookieFinalize(GObject *obj) { - qemuDomainSaveCookiePtr cookie =3D obj; + qemuDomainSaveCookiePtr cookie =3D QEMU_DOMAIN_SAVE_COOKIE(obj); =20 VIR_DEBUG("cookie=3D%p", cookie); =20 virCPUDefFree(cookie->cpu); + + G_OBJECT_CLASS(qemu_domain_save_cookie_parent_class)->finalize(obj); } =20 =20 @@ -12752,11 +12757,7 @@ qemuDomainSaveCookieNew(virDomainObjPtr vm) qemuDomainObjPrivatePtr priv =3D vm->privateData; g_autoptr(qemuDomainSaveCookie) cookie =3D NULL; =20 - if (qemuDomainInitialize() < 0) - return NULL; - - if (!(cookie =3D virObjectNew(qemuDomainSaveCookieClass))) - return NULL; + cookie =3D QEMU_DOMAIN_SAVE_COOKIE(g_object_new(QEMU_TYPE_DOMAIN_SAVE_= COOKIE, NULL)); =20 if (priv->origCPU && !(cookie->cpu =3D virCPUDefCopy(vm->def->cpu))) return NULL; @@ -12772,15 +12773,11 @@ qemuDomainSaveCookieNew(virDomainObjPtr vm) =20 static int qemuDomainSaveCookieParse(xmlXPathContextPtr ctxt G_GNUC_UNUSED, - virObjectPtr *obj) + GObject **obj) { g_autoptr(qemuDomainSaveCookie) cookie =3D NULL; =20 - if (qemuDomainInitialize() < 0) - return -1; - - if (!(cookie =3D virObjectNew(qemuDomainSaveCookieClass))) - return -1; + cookie =3D QEMU_DOMAIN_SAVE_COOKIE(g_object_new(QEMU_TYPE_DOMAIN_SAVE_= COOKIE, NULL)); =20 if (virCPUDefParseXML(ctxt, "./cpu[1]", VIR_CPU_TYPE_GUEST, &cookie->cpu) < 0) @@ -12788,14 +12785,14 @@ qemuDomainSaveCookieParse(xmlXPathContextPtr ctxt= G_GNUC_UNUSED, =20 cookie->slirpHelper =3D virXPathBoolean("boolean(./slirpHelper)", ctxt= ) > 0; =20 - *obj =3D (virObjectPtr) g_steal_pointer(&cookie); + *obj =3D (GObject *)g_steal_pointer(&cookie); return 0; } =20 =20 static int qemuDomainSaveCookieFormat(virBufferPtr buf, - virObjectPtr obj) + GObject *obj) { qemuDomainSaveCookiePtr cookie =3D (qemuDomainSaveCookiePtr) obj; =20 diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 7dbd3ffc69..65a1f03a2b 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -672,16 +672,20 @@ void qemuProcessEventFree(struct qemuProcessEvent *ev= ent); G_DECLARE_FINAL_TYPE(qemuDomainLogContext, qemu_domain_log_context, QEMU, = DOMAIN_LOG_CONTEXT, GObject); typedef qemuDomainLogContext *qemuDomainLogContextPtr; =20 -typedef struct _qemuDomainSaveCookie qemuDomainSaveCookie; -typedef qemuDomainSaveCookie *qemuDomainSaveCookiePtr; struct _qemuDomainSaveCookie { - virObject parent; + GObject parent; =20 virCPUDefPtr cpu; bool slirpHelper; }; =20 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuDomainSaveCookie, virObjectUnref); +#define QEMU_TYPE_DOMAIN_SAVE_COOKIE qemu_domain_save_cookie_get_type() +G_DECLARE_FINAL_TYPE(qemuDomainSaveCookie, + qemu_domain_save_cookie, + QEMU, + DOMAIN_SAVE_COOKIE, + GObject); +typedef qemuDomainSaveCookie *qemuDomainSaveCookiePtr; =20 typedef struct _qemuDomainXmlNsDef qemuDomainXmlNsDef; typedef qemuDomainXmlNsDef *qemuDomainXmlNsDefPtr; diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 3e92629d19..2d2c08b18f 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -2890,7 +2890,7 @@ virQEMUSaveDataNew(char *domXML, data->xml =3D g_steal_pointer(&domXML); =20 if (cookieObj && - !(data->cookie =3D virSaveCookieFormat((virObjectPtr) cookieObj, + !(data->cookie =3D virSaveCookieFormat((GObject *) cookieObj, virDomainXMLOptionGetSaveCook= ie(xmlopt)))) goto error; =20 @@ -6849,7 +6849,7 @@ qemuDomainSaveImageStartVM(virConnectPtr conn, g_autoptr(qemuDomainSaveCookie) cookie =3D NULL; int rc =3D 0; =20 - if (virSaveCookieParseString(data->cookie, (virObjectPtr *)&cookie, + if (virSaveCookieParseString(data->cookie, (GObject **)&cookie, virDomainXMLOptionGetSaveCookie(driver->x= mlopt)) < 0) goto cleanup; =20 @@ -14490,7 +14490,7 @@ qemuDomainSnapshotCreateActiveInternal(virQEMUDrive= rPtr driver, if (ret < 0) goto cleanup; =20 - if (!(snapdef->cookie =3D (virObjectPtr) qemuDomainSaveCookieNew(vm))) + if (!(snapdef->cookie =3D (GObject *) qemuDomainSaveCookieNew(vm))) goto cleanup; =20 if (flags & VIR_DOMAIN_SNAPSHOT_CREATE_HALT) { @@ -15499,7 +15499,7 @@ qemuDomainSnapshotCreateActiveExternal(virQEMUDrive= rPtr driver, if (!(xml =3D qemuDomainDefFormatLive(driver, priv->qemuCaps, vm->def, priv->origCPU, true, true)) || - !(snapdef->cookie =3D (virObjectPtr) qemuDomainSaveCookieNew(v= m))) + !(snapdef->cookie =3D (GObject *) qemuDomainSaveCookieNew(vm))) goto cleanup; =20 if (!(data =3D virQEMUSaveDataNew(xml, --=20 2.25.1 From nobody Thu May 16 10:17:16 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.81 as permitted sender) client-ip=207.211.31.81; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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=1585927057; cv=none; d=zohomail.com; s=zohoarc; b=dM984ytCf8VKrzY8NPn7lnNFxwFXDeFYpiJJoSALE/q1eeBNfRVw274YFUMhdJeBMZi7NQ2VY6lkq4eonn1Nn83SgXEx37+SHi6AaMYXuxbGmTQydHwpbRImyk8msoLlVPkIayUhM1nLbVqC8+//3YVoFqn1DDOe+ZJB0dCWPtI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1585927057; 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=vnO7Z80Msi1ZxN8Ap+jlLe6TMKfr1gcdwIYTNORQjJE=; b=f1rEsn2GFb7SmEy+SlBTvLvqC7YzWZDpD8O+q/u51RRa5BsarY6muTdEthLpZtHxFLGDbIzXWe99DrprMviWUL3wdcBd/VHSaxJzXUlK+xIEaGVWrIc9prds/JG0h7qa06TeIIDkSQlV4FULJC5AlLfhZxymEqXW3DK5QLic9SE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.81 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-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by mx.zohomail.com with SMTPS id 1585927057795639.699440463316; Fri, 3 Apr 2020 08:17:37 -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-297-90Ye4M5GNiS7_UAVUdaUFw-1; Fri, 03 Apr 2020 11:17:33 -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 6E953107ACC4; Fri, 3 Apr 2020 15:17:23 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4480C10002CD; Fri, 3 Apr 2020 15:17:23 +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 EC0314E46B; Fri, 3 Apr 2020 15:17:22 +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 033FHDHc028483 for ; Fri, 3 Apr 2020 11:17:13 -0400 Received: by smtp.corp.redhat.com (Postfix) id 564E013CCA2; Fri, 3 Apr 2020 15:17:13 +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 519D513CCA6 for ; Fri, 3 Apr 2020 15:17:13 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (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 32C2A8FF67D for ; Fri, 3 Apr 2020 15:17:13 +0000 (UTC) Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-439-PzfT3qZINA2I69w5d8x5dQ-1; Fri, 03 Apr 2020 11:17:10 -0400 Received: by mail-wr1-f65.google.com with SMTP id 31so8966511wrs.3 for ; Fri, 03 Apr 2020 08:17:10 -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.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2020 08:17:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1585927056; 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=vnO7Z80Msi1ZxN8Ap+jlLe6TMKfr1gcdwIYTNORQjJE=; b=EmVKSPY3oOxlQHITb+nsekfQxIOxj0RyxrS8oyMlhxAQjIgEVr4+QFWBee6dHyBSxrEiww 7sdfFHlXC/HiiytAuCkAt0AYvkOTxKS2Hdo6rvWfBd/AnSqaQ41Hm/UL8VPswUgNQ7Uq+m 4eD54nDZDfahFOjj24WadL2VvRVcNVM= X-MC-Unique: 90Ye4M5GNiS7_UAVUdaUFw-1 X-MC-Unique: PzfT3qZINA2I69w5d8x5dQ-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=CvyQV7t97Uay5nBeI53tZJ6B50YvPlj91ZtxVW57VFA=; b=ByyYgl4vj65mNdW052XerNlHtndhh5hCOAErnNvB6FH6OOJsFdbhZmZ2tmQWCb8Oer YkS94jYCG+JlOVThNw56Z+5OjubV6Gr4PhqgTwhzoOr9qUi4fxmd5YliSmdNtnJPhoF0 SYMa3oeEqsxTGz/WXRYCuKifW8wn3smhHBhcVfjBmaMkgM5S4Qp5IJTjIY8ywGeTfbEJ +7RyNYqPTahp8fK0AJG+afUJStJiuyacnWkdCaUOeIRHoCfSO4GzpQax68voaE3KRg4Y jjKrbWZemdLW/G74SlCfa1HHHSRV8VtLzb0+5d0feKsGy3FDcdn8FP2isKPRatOkjuKw hhTQ== X-Gm-Message-State: AGi0PuZf2ePyzzXt4ykxWle97iXk6xHDNIIR2QkLDgiDZwneFXr91LRj oPrIGxHL9FrjpiCAy+fhm2X/vKpy8l4= X-Google-Smtp-Source: APiQypI5FerIPcqKrRG2+fQ/SHLcZ2z5wSA6YLu529+U2M/NMqYYYpCdI57v+BgrKQoWgHSAmPJX1g== X-Received: by 2002:adf:fcc8:: with SMTP id f8mr10075706wrs.132.1585927029016; Fri, 03 Apr 2020 08:17:09 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 36/36] util: convert virStorageSource to GObject Date: Fri, 3 Apr 2020 17:16:04 +0200 Message-Id: <20200403151604.106616-37-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 033FHDHc028483 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/qemu/qemu_blockjob.c | 71 ++++++++++++++++++--------------------- src/qemu/qemu_domain.c | 13 +++---- src/util/virstoragefile.c | 41 +++++++++++----------- src/util/virstoragefile.h | 6 ++-- 4 files changed, 65 insertions(+), 66 deletions(-) diff --git a/src/qemu/qemu_blockjob.c b/src/qemu/qemu_blockjob.c index 7d6aabe554..767ac54170 100644 --- a/src/qemu/qemu_blockjob.c +++ b/src/qemu/qemu_blockjob.c @@ -91,10 +91,10 @@ static void qemuBlockJobDataDisposeJobdata(qemuBlockJobDataPtr job) { if (job->type =3D=3D QEMU_BLOCKJOB_TYPE_CREATE) - virObjectUnref(job->data.create.src); + g_object_unref(job->data.create.src); =20 if (job->type =3D=3D QEMU_BLOCKJOB_TYPE_BACKUP) { - virObjectUnref(job->data.backup.store); + g_object_unref(job->data.backup.store); g_free(job->data.backup.bitmap); } } @@ -105,8 +105,10 @@ qemuBlockJobDataFinalize(GObject *obj) { qemuBlockJobDataPtr job =3D QEMU_BLOCK_JOB_DATA(obj); =20 - virObjectUnref(job->chain); - virObjectUnref(job->mirrorChain); + if (job->chain) + g_object_unref(job->chain); + if (job->mirrorChain) + g_object_unref(job->mirrorChain); =20 qemuBlockJobDataDisposeJobdata(job); =20 @@ -185,7 +187,7 @@ qemuBlockJobRegister(qemuBlockJobDataPtr job, =20 if (disk) { job->disk =3D disk; - job->chain =3D virObjectRef(disk->src); + job->chain =3D g_object_ref(disk->src); QEMU_DOMAIN_DISK_PRIVATE(disk)->blockjob =3D g_object_ref(job); } =20 @@ -337,9 +339,9 @@ qemuBlockJobNewCreate(virDomainObjPtr vm, return NULL; =20 if (virStorageSourceIsBacking(chain)) - job->chain =3D virObjectRef(chain); + job->chain =3D g_object_ref(chain); =20 - job->data.create.src =3D virObjectRef(src); + job->data.create.src =3D g_object_ref(src); =20 if (qemuBlockJobRegister(job, vm, NULL, true) < 0) return NULL; @@ -370,7 +372,7 @@ qemuBlockJobDiskNewCopy(virDomainObjPtr vm, if (!(job =3D qemuBlockJobDataNew(QEMU_BLOCKJOB_TYPE_COPY, jobname))) return NULL; =20 - job->mirrorChain =3D virObjectRef(mirror); + job->mirrorChain =3D g_object_ref(mirror); =20 if (shallow && !reuse) job->data.copy.shallownew =3D true; @@ -399,7 +401,7 @@ qemuBlockJobDiskNewBackup(virDomainObjPtr vm, return NULL; =20 job->data.backup.bitmap =3D g_strdup(bitmap); - job->data.backup.store =3D virObjectRef(store); + job->data.backup.store =3D g_object_ref(store); =20 /* backup jobs are usually started in bulk by transaction so the caller * shall save the status XML */ @@ -688,14 +690,12 @@ qemuBlockJobRewriteConfigDiskSource(virDomainObjPtr v= m, /* discard any detected backing store */ if (virStorageSourceIsBacking(n->backingStore) && n->backingStore->detected) { - virObjectUnref(n->backingStore); - n->backingStore =3D NULL; + g_clear_object(&n->backingStore); break; } } =20 - virObjectUnref(persistDisk->src); - persistDisk->src =3D g_steal_pointer(©); + g_set_object(&persistDisk->src, copy); } =20 =20 @@ -729,8 +729,7 @@ qemuBlockJobEventProcessLegacyCompleted(virQEMUDriverPt= r driver, disk->dst); } =20 - virObjectUnref(disk->src); - disk->src =3D disk->mirror; + g_set_object(&disk->src, disk->mirror); } else { if (disk->mirror) { virDomainLockImageDetach(driver->lockManager, vm, disk->mirror= ); @@ -740,7 +739,7 @@ qemuBlockJobEventProcessLegacyCompleted(virQEMUDriverPt= r driver, * Remove security driver metadata so that they are not leaked= . */ qemuBlockRemoveImageMetadata(driver, vm, disk->dst, disk->mirr= or); =20 - virObjectUnref(disk->mirror); + g_object_unref(disk->mirror); } =20 qemuBlockRemoveImageMetadata(driver, vm, disk->dst, disk->src); @@ -817,8 +816,7 @@ qemuBlockJobEventProcessLegacy(virQEMUDriverPtr driver, * Remove security driver metadata so that they are not leaked= . */ qemuBlockRemoveImageMetadata(driver, vm, disk->dst, disk->mirr= or); =20 - virObjectUnref(disk->mirror); - disk->mirror =3D NULL; + g_clear_object(&disk->mirror); } disk->mirrorState =3D VIR_DOMAIN_DISK_MIRROR_STATE_NONE; disk->mirrorJob =3D VIR_DOMAIN_BLOCK_JOB_TYPE_UNKNOWN; @@ -930,8 +928,8 @@ qemuBlockJobClearConfigChain(virDomainObjPtr vm, if (!virStorageSourceIsSameLocation(disk->src, cfgdisk->src)) return; =20 - virObjectUnref(cfgdisk->src->backingStore); - cfgdisk->src->backingStore =3D NULL; + if (cfgdisk->src->backingStore) + g_clear_object(&cfgdisk->src->backingStore); } =20 =20 @@ -997,14 +995,16 @@ qemuBlockJobProcessEventCompletedPull(virQEMUDriverPt= r driver, if (baseparent) baseparent->backingStore =3D NULL; qemuBlockJobEventProcessConcludedRemoveChain(driver, vm, asyncJob, tmp= ); - virObjectUnref(tmp); + if (tmp) + g_object_unref(tmp); =20 if (cfgdisk) { tmp =3D cfgdisk->src->backingStore; cfgdisk->src->backingStore =3D cfgbase; if (cfgbaseparent) cfgbaseparent->backingStore =3D NULL; - virObjectUnref(tmp); + if (tmp) + g_object_unref(tmp); } } =20 @@ -1171,8 +1171,7 @@ qemuBlockJobProcessEventCompletedCommit(virQEMUDriver= Ptr driver, if (job->data.commit.deleteCommittedImages) qemuBlockJobDeleteImages(driver, vm, job->disk, job->data.commit.t= op); =20 - virObjectUnref(job->data.commit.top); - job->data.commit.top =3D NULL; + g_clear_object(&job->data.commit.top); =20 if (cfgbaseparent) { cfgbase =3D cfgbaseparent->backingStore; @@ -1183,7 +1182,8 @@ qemuBlockJobProcessEventCompletedCommit(virQEMUDriver= Ptr driver, else cfgdisk->src =3D cfgbase; =20 - virObjectUnref(cfgtop); + if (cfgtop) + g_object_unref(cfgtop); } } =20 @@ -1249,7 +1249,8 @@ qemuBlockJobProcessEventCompletedActiveCommit(virQEMU= DriverPtr driver, cfgbaseparent->backingStore =3D NULL; cfgdisk->src =3D cfgbase; cfgdisk->src->readonly =3D cfgtop->readonly; - virObjectUnref(cfgtop); + if (cfgtop) + g_object_unref(cfgtop); } =20 /* Move security driver metadata */ @@ -1265,11 +1266,9 @@ qemuBlockJobProcessEventCompletedActiveCommit(virQEM= UDriverPtr driver, if (job->data.commit.deleteCommittedImages) qemuBlockJobDeleteImages(driver, vm, job->disk, job->data.commit.t= op); =20 - virObjectUnref(job->data.commit.top); - job->data.commit.top =3D NULL; + g_clear_object(&job->data.commit.top); /* the mirror element does not serve functional purpose for the commit= job */ - virObjectUnref(job->disk->mirror); - job->disk->mirror =3D NULL; + g_clear_object(&job->disk->mirror); } =20 =20 @@ -1297,8 +1296,7 @@ qemuBlockJobProcessEventConcludedCopyPivot(virQEMUDri= verPtr driver, qemuBlockJobRewriteConfigDiskSource(vm, job->disk, job->disk->mirror); =20 qemuBlockJobEventProcessConcludedRemoveChain(driver, vm, asyncJob, job= ->disk->src); - virObjectUnref(job->disk->src); - job->disk->src =3D g_steal_pointer(&job->disk->mirror); + g_set_object(&job->disk->src, job->disk->mirror); } =20 =20 @@ -1316,8 +1314,7 @@ qemuBlockJobProcessEventConcludedCopyAbort(virQEMUDri= verPtr driver, return; =20 qemuBlockJobEventProcessConcludedRemoveChain(driver, vm, asyncJob, job= ->disk->mirror); - virObjectUnref(job->disk->mirror); - job->disk->mirror =3D NULL; + g_clear_object(&job->disk->mirror); } =20 =20 @@ -1338,8 +1335,7 @@ qemuBlockJobProcessEventFailedActiveCommit(virQEMUDri= verPtr driver, * not leaking security driver metadata is more important. */ qemuBlockRemoveImageMetadata(driver, vm, disk->dst, disk->mirror); =20 - virObjectUnref(disk->mirror); - disk->mirror =3D NULL; + g_clear_object(&disk->mirror); } =20 =20 @@ -1389,8 +1385,7 @@ qemuBlockJobProcessEventConcludedCreate(virQEMUDriver= Ptr driver, * it will handle further hotplug of the created volume and also that * the 'chain' which was registered is under their control */ if (job->synchronous) { - virObjectUnref(job->chain); - job->chain =3D NULL; + g_clear_object(&job->chain); return; } =20 diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index a12ecc0e25..7523769d9b 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1159,7 +1159,8 @@ qemuDomainDiskPrivateFinalize(GObject *obj) { qemuDomainDiskPrivatePtr priv =3D QEMU_DOMAIN_DISK(obj); =20 - virObjectUnref(priv->migrSource); + if (priv->migrSource) + g_object_unref(priv->migrSource); VIR_FREE(priv->qomName); VIR_FREE(priv->nodeCopyOnRead); if (priv->blockjob) @@ -2247,10 +2248,10 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivateP= tr priv) =20 virHashRemoveAll(priv->blockjobs); =20 - virObjectUnref(priv->pflash0); - priv->pflash0 =3D NULL; - virObjectUnref(priv->pflash1); - priv->pflash1 =3D NULL; + if (priv->pflash0) + g_clear_object(&priv->pflash0); + if (priv->pflash1) + g_clear_object(&priv->pflash1); =20 virDomainBackupDefFree(priv->backup); priv->backup =3D NULL; @@ -3386,7 +3387,7 @@ qemuDomainObjPrivateXMLParseBlockjobData(virDomainObj= Ptr vm, =20 if (mirror) { if (disk) - job->mirrorChain =3D virObjectRef(disk->mirror); + job->mirrorChain =3D g_object_ref(disk->mirror); else invalidData =3D true; } diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index ffc8bdb344..d367ebe8c3 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -45,7 +45,21 @@ =20 VIR_LOG_INIT("util.storagefile"); =20 -static virClassPtr virStorageSourceClass; +G_DEFINE_TYPE(virStorageSource, vir_storage_source, G_TYPE_OBJECT); +static void virStorageSourceFinalize(GObject *obj); + +static void +vir_storage_source_init(virStorageSource *src G_GNUC_UNUSED) +{ +} + +static void +vir_storage_source_class_init(virStorageSourceClass *klass) +{ + GObjectClass *obj =3D G_OBJECT_CLASS(klass); + + obj->finalize =3D virStorageSourceFinalize; +} =20 VIR_ENUM_IMPL(virStorage, VIR_STORAGE_TYPE_LAST, @@ -2682,8 +2696,8 @@ virStorageSourceBackingStoreClear(virStorageSourcePtr= def) VIR_FREE(def->backingStoreRaw); =20 /* recursively free backing chain */ - virObjectUnref(def->backingStore); - def->backingStore =3D NULL; + if (def->backingStore) + g_clear_object(&def->backingStore); } =20 =20 @@ -2739,34 +2753,21 @@ virStorageSourceClear(virStorageSourcePtr def) =20 =20 static void -virStorageSourceDispose(void *obj) +virStorageSourceFinalize(GObject *obj) { - virStorageSourcePtr src =3D obj; + virStorageSourcePtr src =3D VIR_STORAGE_SOURCE(obj); =20 virStorageSourceClear(src); -} =20 - -static int -virStorageSourceOnceInit(void) -{ - if (!VIR_CLASS_NEW(virStorageSource, virClassForObject())) - return -1; - - return 0; + G_OBJECT_CLASS(vir_storage_source_parent_class)->finalize(obj); } =20 =20 -VIR_ONCE_GLOBAL_INIT(virStorageSource); - =20 virStorageSourcePtr virStorageSourceNew(void) { - if (virStorageSourceInitialize() < 0) - return NULL; - - return virObjectNew(virStorageSourceClass); + return VIR_STORAGE_SOURCE(g_object_new(VIR_TYPE_STORAGE_SOURCE, NULL)); } =20 =20 diff --git a/src/util/virstoragefile.h b/src/util/virstoragefile.h index a744bcbf5c..ce56e8e18e 100644 --- a/src/util/virstoragefile.h +++ b/src/util/virstoragefile.h @@ -275,7 +275,7 @@ typedef virStorageSource *virStorageSourcePtr; * IMPORTANT: When adding fields to this struct it's also necessary to add * appropriate code to the virStorageSourceCopy deep copy function */ struct _virStorageSource { - virObject parent; + GObject parent; =20 unsigned int id; /* backing chain identifier, 0 is unset */ int type; /* virStorageType */ @@ -393,7 +393,9 @@ struct _virStorageSource { bool ssh_host_key_check_disabled; }; =20 -G_DEFINE_AUTOPTR_CLEANUP_FUNC(virStorageSource, virObjectUnref); +#define VIR_TYPE_STORAGE_SOURCE vir_storage_source_get_type() +G_DECLARE_FINAL_TYPE(virStorageSource, vir_storage_source, VIR, STORAGE_SO= URCE, GObject); + =20 =20 #ifndef DEV_BSIZE --=20 2.25.1