qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 2/2] migration/qjson: Drop gratuitous use of QOM


From: Markus Armbruster
Subject: [Qemu-devel] [PATCH 2/2] migration/qjson: Drop gratuitous use of QOM
Date: Wed, 4 May 2016 18:49:18 +0200

All the use of QOM buys us here is the ability to destroy the thing
with object_unref(OBJECT(vmdesc)).  Not worth the notational overhead.

Signed-off-by: Markus Armbruster <address@hidden>
---
 include/migration/qjson.h |  2 +-
 migration/qjson.c         | 39 ++++++---------------------------------
 migration/savevm.c        |  2 +-
 3 files changed, 8 insertions(+), 35 deletions(-)

diff --git a/include/migration/qjson.h b/include/migration/qjson.h
index 7c54fdf..2978b5f 100644
--- a/include/migration/qjson.h
+++ b/include/migration/qjson.h
@@ -13,10 +13,10 @@
 #ifndef QEMU_QJSON_H
 #define QEMU_QJSON_H
 
-#define TYPE_QJSON "QJSON"
 typedef struct QJSON QJSON;
 
 QJSON *qjson_new(void);
+void qjson_destroy(QJSON *json);
 void json_prop_str(QJSON *json, const char *name, const char *str);
 void json_prop_int(QJSON *json, const char *name, int64_t val);
 void json_end_array(QJSON *json);
diff --git a/migration/qjson.c b/migration/qjson.c
index cb479fe..5cae55a 100644
--- a/migration/qjson.c
+++ b/migration/qjson.c
@@ -26,17 +26,12 @@
 #include "qemu/osdep.h"
 #include "qapi/qmp/qstring.h"
 #include "migration/qjson.h"
-#include "qemu/module.h"
-#include "qom/object.h"
 
 struct QJSON {
-    Object obj;
     QString *str;
     bool omit_comma;
 };
 
-#define QJSON(obj) OBJECT_CHECK(QJSON, (obj), TYPE_QJSON)
-
 static void json_emit_element(QJSON *json, const char *name)
 {
     /* Check whether we need to print a , before an element */
@@ -100,7 +95,10 @@ const char *qjson_get_str(QJSON *json)
 
 QJSON *qjson_new(void)
 {
-    QJSON *json = QJSON(object_new(TYPE_QJSON));
+    QJSON *json = g_new0(QJSON, 1);
+
+    json->str = qstring_from_str("{ ");
+    json->omit_comma = true;
     return json;
 }
 
@@ -109,32 +107,7 @@ void qjson_finish(QJSON *json)
     json_end_object(json);
 }
 
-static void qjson_initfn(Object *obj)
+void qjson_destroy(QJSON *json)
 {
-    QJSON *json = QJSON(obj);
-
-    json->str = qstring_from_str("{ ");
-    json->omit_comma = true;
+    g_free(json);
 }
-
-static void qjson_finalizefn(Object *obj)
-{
-    QJSON *json = QJSON(obj);
-
-    qobject_decref(QOBJECT(json->str));
-}
-
-static const TypeInfo qjson_type_info = {
-    .name = TYPE_QJSON,
-    .parent = TYPE_OBJECT,
-    .instance_size = sizeof(QJSON),
-    .instance_init = qjson_initfn,
-    .instance_finalize = qjson_finalizefn,
-};
-
-static void qjson_register_types(void)
-{
-    type_register_static(&qjson_type_info);
-}
-
-type_init(qjson_register_types)
diff --git a/migration/savevm.c b/migration/savevm.c
index 16ba443..c5937c8 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -1114,7 +1114,7 @@ void qemu_savevm_state_complete_precopy(QEMUFile *f, bool 
iterable_only)
         qemu_put_be32(f, vmdesc_len);
         qemu_put_buffer(f, (uint8_t *)qjson_get_str(vmdesc), vmdesc_len);
     }
-    object_unref(OBJECT(vmdesc));
+    qjson_destroy(vmdesc);
 
     qemu_fflush(f);
 }
-- 
2.5.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]