[PATCH 39/40] conf: convert virSaveCookie to GObject

Rafael Fonseca r4f4rfs at gmail.com
Wed May 13 11:57:23 UTC 2020


Signed-off-by: Rafael Fonseca <r4f4rfs at gmail.com>
---
 src/conf/snapshot_conf.c |  2 +-
 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, 51 insertions(+), 50 deletions(-)

diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c
index 98c296b276..096974a3c9 100644
--- a/src/conf/snapshot_conf.c
+++ b/src/conf/snapshot_conf.c
@@ -129,7 +129,7 @@ virDomainSnapshotDefDispose(void *obj)
     for (i = 0; i < def->ndisks; i++)
         virDomainSnapshotDiskDefClear(&def->disks[i]);
     VIR_FREE(def->disks);
-    virObjectUnref(def->cookie);
+    g_clear_object(&def->cookie);
 }
 
 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;
 
-    virObjectPtr cookie;
+    GObject *cookie;
 };
 
 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");
 
 static int
 virSaveCookieParseNode(xmlXPathContextPtr ctxt,
-                       virObjectPtr *obj,
+                       GObject **obj,
                        virSaveCookieCallbacksPtr saveCookie)
 {
     *obj = NULL;
@@ -54,7 +54,7 @@ virSaveCookieParseNode(xmlXPathContextPtr ctxt,
 
 int
 virSaveCookieParse(xmlXPathContextPtr ctxt,
-                   virObjectPtr *obj,
+                   GObject **obj,
                    virSaveCookieCallbacksPtr saveCookie)
 {
     xmlNodePtr node = ctxt->node;
@@ -77,7 +77,7 @@ virSaveCookieParse(xmlXPathContextPtr ctxt,
 
 int
 virSaveCookieParseString(const char *xml,
-                         virObjectPtr *obj,
+                         GObject **obj,
                          virSaveCookieCallbacksPtr saveCookie)
 {
     xmlDocPtr doc = NULL;
@@ -105,7 +105,7 @@ virSaveCookieParseString(const char *xml,
 
 int
 virSaveCookieFormatBuf(virBufferPtr buf,
-                       virObjectPtr obj,
+                       GObject *obj,
                        virSaveCookieCallbacksPtr saveCookie)
 {
     if (!obj || !saveCookie || !saveCookie->format)
@@ -125,7 +125,7 @@ virSaveCookieFormatBuf(virBufferPtr buf,
 
 
 char *
-virSaveCookieFormat(virObjectPtr obj,
+virSaveCookieFormat(GObject *obj,
                     virSaveCookieCallbacksPtr saveCookie)
 {
     virBuffer buf = 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 <libxml/xpath.h>
 
 #include "internal.h"
-#include "virobject.h"
 #include "virbuffer.h"
+#include <glib-object.h>
 
 
 typedef int (*virSaveCookieParseFunc)(xmlXPathContextPtr ctxt,
-                                      virObjectPtr *obj);
+                                      GObject **obj);
 typedef int (*virSaveCookieFormatFunc)(virBufferPtr buf,
-                                       virObjectPtr obj);
+                                       GObject *obj);
 
 typedef struct _virSaveCookieCallbacks virSaveCookieCallbacks;
 typedef virSaveCookieCallbacks *virSaveCookieCallbacksPtr;
@@ -42,19 +42,19 @@ struct _virSaveCookieCallbacks {
 
 int
 virSaveCookieParse(xmlXPathContextPtr ctxt,
-                   virObjectPtr *obj,
+                   GObject **obj,
                    virSaveCookieCallbacksPtr saveCookie);
 
 int
 virSaveCookieParseString(const char *xml,
-                         virObjectPtr *obj,
+                         GObject **obj,
                          virSaveCookieCallbacksPtr saveCookie);
 
 int
 virSaveCookieFormatBuf(virBufferPtr buf,
-                       virObjectPtr obj,
+                       GObject *obj,
                        virSaveCookieCallbacksPtr saveCookie);
 
 char *
-virSaveCookieFormat(virObjectPtr obj,
+virSaveCookieFormat(GObject *obj,
                     virSaveCookieCallbacksPtr saveCookie);
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 554bfa85f2..02f0ccaa08 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -163,21 +163,12 @@ struct _qemuDomainLogContext {
 };
 
 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);
 
 static void qemuDomainLogContextFinalize(GObject *obj);
-static void qemuDomainSaveCookieDispose(void *obj);
+static void qemuDomainSaveCookieFinalize(GObject *obj);
 
 
-static int
-qemuDomainOnceInit(void)
-{
-    if (!VIR_CLASS_NEW(qemuDomainSaveCookie, virClassForObject()))
-        return -1;
-
-    return 0;
-}
-
 static void qemu_domain_log_context_init(qemuDomainLogContext *logctxt G_GNUC_UNUSED)
 {
 }
@@ -189,8 +180,6 @@ static void qemu_domain_log_context_class_init(qemuDomainLogContextClass *klass)
     obj->finalize = qemuDomainLogContextFinalize;
 }
 
-VIR_ONCE_GLOBAL_INIT(qemuDomain);
-
 static void
 qemuDomainLogContextFinalize(GObject *object)
 {
@@ -204,6 +193,20 @@ qemuDomainLogContextFinalize(GObject *object)
     G_OBJECT_CLASS(qemu_domain_log_context_parent_class)->finalize(object);
 }
 
+static void
+qemu_domain_save_cookie_init(qemuDomainSaveCookie *cookie G_GNUC_UNUSED)
+{
+}
+
+static void
+qemu_domain_save_cookie_class_init(qemuDomainSaveCookieClass *klass)
+{
+    GObjectClass *obj = G_OBJECT_CLASS(klass);
+
+    obj->finalize = qemuDomainSaveCookieFinalize;
+}
+
+
 const char *
 qemuDomainAsyncJobPhaseToString(qemuDomainAsyncJob job,
                                 int phase G_GNUC_UNUSED)
@@ -12782,13 +12785,15 @@ qemuDomainGetStorageSourceByDevstr(const char *devstr,
 
 
 static void
-qemuDomainSaveCookieDispose(void *obj)
+qemuDomainSaveCookieFinalize(GObject *obj)
 {
-    qemuDomainSaveCookiePtr cookie = obj;
+    qemuDomainSaveCookiePtr cookie = QEMU_DOMAIN_SAVE_COOKIE(obj);
 
     VIR_DEBUG("cookie=%p", cookie);
 
     virCPUDefFree(cookie->cpu);
+
+    G_OBJECT_CLASS(qemu_domain_save_cookie_parent_class)->finalize(obj);
 }
 
 
@@ -12798,11 +12803,7 @@ qemuDomainSaveCookieNew(virDomainObjPtr vm)
     qemuDomainObjPrivatePtr priv = vm->privateData;
     g_autoptr(qemuDomainSaveCookie) cookie = NULL;
 
-    if (qemuDomainInitialize() < 0)
-        return NULL;
-
-    if (!(cookie = virObjectNew(qemuDomainSaveCookieClass)))
-        return NULL;
+    cookie = QEMU_DOMAIN_SAVE_COOKIE(g_object_new(QEMU_TYPE_DOMAIN_SAVE_COOKIE, NULL));
 
     if (priv->origCPU && !(cookie->cpu = virCPUDefCopy(vm->def->cpu)))
         return NULL;
@@ -12818,15 +12819,11 @@ qemuDomainSaveCookieNew(virDomainObjPtr vm)
 
 static int
 qemuDomainSaveCookieParse(xmlXPathContextPtr ctxt G_GNUC_UNUSED,
-                          virObjectPtr *obj)
+                          GObject **obj)
 {
     g_autoptr(qemuDomainSaveCookie) cookie = NULL;
 
-    if (qemuDomainInitialize() < 0)
-        return -1;
-
-    if (!(cookie = virObjectNew(qemuDomainSaveCookieClass)))
-        return -1;
+    cookie = QEMU_DOMAIN_SAVE_COOKIE(g_object_new(QEMU_TYPE_DOMAIN_SAVE_COOKIE, NULL));
 
     if (virCPUDefParseXML(ctxt, "./cpu[1]", VIR_CPU_TYPE_GUEST,
                           &cookie->cpu) < 0)
@@ -12834,14 +12831,14 @@ qemuDomainSaveCookieParse(xmlXPathContextPtr ctxt G_GNUC_UNUSED,
 
     cookie->slirpHelper = virXPathBoolean("boolean(./slirpHelper)", ctxt) > 0;
 
-    *obj = (virObjectPtr) g_steal_pointer(&cookie);
+    *obj = G_OBJECT(g_steal_pointer(&cookie));
     return 0;
 }
 
 
 static int
 qemuDomainSaveCookieFormat(virBufferPtr buf,
-                           virObjectPtr obj)
+                           GObject *obj)
 {
     qemuDomainSaveCookiePtr cookie = (qemuDomainSaveCookiePtr) obj;
 
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index 286a422338..01e51d5475 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -682,16 +682,20 @@ void qemuProcessEventFree(struct qemuProcessEvent *event);
 G_DECLARE_FINAL_TYPE(qemuDomainLogContext, qemu_domain_log_context, QEMU, DOMAIN_LOG_CONTEXT, GObject);
 typedef qemuDomainLogContext *qemuDomainLogContextPtr;
 
-typedef struct _qemuDomainSaveCookie qemuDomainSaveCookie;
-typedef qemuDomainSaveCookie *qemuDomainSaveCookiePtr;
 struct _qemuDomainSaveCookie {
-    virObject parent;
+    GObject parent;
 
     virCPUDefPtr cpu;
     bool slirpHelper;
 };
 
-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;
 
 typedef struct _qemuDomainXmlNsDef qemuDomainXmlNsDef;
 typedef qemuDomainXmlNsDef *qemuDomainXmlNsDefPtr;
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index fd425aa3de..02c26d36dd 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -2873,7 +2873,7 @@ virQEMUSaveDataNew(char *domXML,
     data->xml = g_steal_pointer(&domXML);
 
     if (cookieObj &&
-        !(data->cookie = virSaveCookieFormat((virObjectPtr) cookieObj,
+        !(data->cookie = virSaveCookieFormat(G_OBJECT(cookieObj),
                                              virDomainXMLOptionGetSaveCookie(xmlopt))))
         goto error;
 
@@ -6840,7 +6840,7 @@ qemuDomainSaveImageStartVM(virConnectPtr conn,
     g_autoptr(qemuDomainSaveCookie) cookie = NULL;
     int rc = 0;
 
-    if (virSaveCookieParseString(data->cookie, (virObjectPtr *)&cookie,
+    if (virSaveCookieParseString(data->cookie, (GObject **)&cookie,
                                  virDomainXMLOptionGetSaveCookie(driver->xmlopt)) < 0)
         goto cleanup;
 
@@ -14475,7 +14475,7 @@ qemuDomainSnapshotCreateActiveInternal(virQEMUDriverPtr driver,
     if (ret < 0)
         goto cleanup;
 
-    if (!(snapdef->cookie = (virObjectPtr) qemuDomainSaveCookieNew(vm)))
+    if (!(snapdef->cookie = G_OBJECT(qemuDomainSaveCookieNew(vm))))
         goto cleanup;
 
     if (flags & VIR_DOMAIN_SNAPSHOT_CREATE_HALT) {
@@ -15488,7 +15488,7 @@ qemuDomainSnapshotCreateActiveExternal(virQEMUDriverPtr driver,
         if (!(xml = qemuDomainDefFormatLive(driver, priv->qemuCaps,
                                             vm->def, priv->origCPU,
                                             true, true)) ||
-            !(snapdef->cookie = (virObjectPtr) qemuDomainSaveCookieNew(vm)))
+            !(snapdef->cookie = G_OBJECT(qemuDomainSaveCookieNew(vm))))
             goto cleanup;
 
         if (!(data = virQEMUSaveDataNew(xml,
-- 
2.26.2




More information about the libvir-list mailing list