Signed-off-by: Rafael Fonseca <r4f4rfs@xxxxxxxxx> --- 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 = 0; i < def->ndisks; i++) virDomainSnapshotDiskDefClear(&def->disks[i]); VIR_FREE(def->disks); - virObjectUnref(def->cookie); + if (def->cookie) + g_object_unref(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 eb0403031d..a12ecc0e25 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -162,21 +162,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) { } @@ -188,8 +179,6 @@ static void qemu_domain_log_context_class_init(qemuDomainLogContextClass *klass) obj->finalize = qemuDomainLogContextFinalize; } -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); } +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) @@ -12736,13 +12739,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); } @@ -12752,11 +12757,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; @@ -12772,15 +12773,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) @@ -12788,14 +12785,14 @@ qemuDomainSaveCookieParse(xmlXPathContextPtr ctxt G_GNUC_UNUSED, cookie->slirpHelper = virXPathBoolean("boolean(./slirpHelper)", ctxt) > 0; - *obj = (virObjectPtr) g_steal_pointer(&cookie); + *obj = (GObject *)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 7dbd3ffc69..65a1f03a2b 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -672,16 +672,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 3e92629d19..2d2c08b18f 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -2890,7 +2890,7 @@ virQEMUSaveDataNew(char *domXML, data->xml = g_steal_pointer(&domXML); if (cookieObj && - !(data->cookie = virSaveCookieFormat((virObjectPtr) cookieObj, + !(data->cookie = virSaveCookieFormat((GObject *) cookieObj, virDomainXMLOptionGetSaveCookie(xmlopt)))) goto error; @@ -6849,7 +6849,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; @@ -14490,7 +14490,7 @@ qemuDomainSnapshotCreateActiveInternal(virQEMUDriverPtr driver, if (ret < 0) goto cleanup; - if (!(snapdef->cookie = (virObjectPtr) qemuDomainSaveCookieNew(vm))) + if (!(snapdef->cookie = (GObject *) qemuDomainSaveCookieNew(vm))) goto cleanup; if (flags & VIR_DOMAIN_SNAPSHOT_CREATE_HALT) { @@ -15499,7 +15499,7 @@ qemuDomainSnapshotCreateActiveExternal(virQEMUDriverPtr driver, if (!(xml = qemuDomainDefFormatLive(driver, priv->qemuCaps, vm->def, priv->origCPU, true, true)) || - !(snapdef->cookie = (virObjectPtr) qemuDomainSaveCookieNew(vm))) + !(snapdef->cookie = (GObject *) qemuDomainSaveCookieNew(vm))) goto cleanup; if (!(data = virQEMUSaveDataNew(xml, -- 2.25.1