]> git.proxmox.com Git - mirror_qemu.git/commitdiff
qmp-output-visitor: Favor new visit_free() function
authorEric Blake <eblake@redhat.com>
Thu, 9 Jun 2016 16:48:40 +0000 (10:48 -0600)
committerMarkus Armbruster <armbru@redhat.com>
Wed, 6 Jul 2016 08:52:04 +0000 (10:52 +0200)
Now that we have a polymorphic visit_free(), we no longer need
qmp_output_visitor_cleanup(); however, we still need to
expose the subtype for qmp_output_get_qobject().

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <1465490926-28625-10-git-send-email-eblake@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
block/qapi.c
blockdev.c
include/qapi/qmp-output-visitor.h
qapi/qmp-output-visitor.c
qemu-img.c
qom/qom-qobject.c
replay/replay-input.c
tests/check-qnull.c
tests/test-qmp-output-visitor.c
util/qemu-sockets.c

index 5594f74d17718523080d3cec874a9072bb24d2c6..41fe4f9fc2d607d7ca408396df234ebd7d94b71f 100644 (file)
@@ -699,7 +699,7 @@ void bdrv_image_info_specific_dump(fprintf_function func_fprintf, void *f,
     assert(qobject_type(obj) == QTYPE_QDICT);
     data = qdict_get(qobject_to_qdict(obj), "data");
     dump_qobject(func_fprintf, f, 1, data);
-    qmp_output_visitor_cleanup(ov);
+    visit_free(qmp_output_get_visitor(ov));
 }
 
 void bdrv_image_info_dump(fprintf_function func_fprintf, void *f,
index 3a104a0aaacf0aa33d885e6423b8c7635bd66d93..c05aaa6ea62e3ad7fddc4c3c74d7a217d6fe4984 100644 (file)
@@ -4020,7 +4020,7 @@ void qmp_blockdev_add(BlockdevOptions *options, Error **errp)
     }
 
 fail:
-    qmp_output_visitor_cleanup(ov);
+    visit_free(qmp_output_get_visitor(ov));
 }
 
 void qmp_x_blockdev_del(bool has_id, const char *id,
index 22667706ab99642af33442e0928559c20e36f7d0..29c9a2e3cd870b2de7a2b8b37147c7105cc0ce23 100644 (file)
@@ -20,7 +20,6 @@
 typedef struct QmpOutputVisitor QmpOutputVisitor;
 
 QmpOutputVisitor *qmp_output_visitor_new(void);
-void qmp_output_visitor_cleanup(QmpOutputVisitor *v);
 
 QObject *qmp_output_get_qobject(QmpOutputVisitor *v);
 Visitor *qmp_output_get_visitor(QmpOutputVisitor *v);
index 5f0035cbf6954727b38a82c9f1eb92197bc8a0a1..3d12623cf99808ae8d792769a51217ec3592e434 100644 (file)
@@ -217,21 +217,15 @@ Visitor *qmp_output_get_visitor(QmpOutputVisitor *v)
 static void qmp_output_free(Visitor *v)
 {
     QmpOutputVisitor *qov = to_qov(v);
-
-    qmp_output_visitor_cleanup(qov);
-}
-
-void qmp_output_visitor_cleanup(QmpOutputVisitor *v)
-{
     QStackEntry *e, *tmp;
 
-    QTAILQ_FOREACH_SAFE(e, &v->stack, node, tmp) {
-        QTAILQ_REMOVE(&v->stack, e, node);
+    QTAILQ_FOREACH_SAFE(e, &qov->stack, node, tmp) {
+        QTAILQ_REMOVE(&qov->stack, e, node);
         g_free(e);
     }
 
-    qobject_decref(v->root);
-    g_free(v);
+    qobject_decref(qov->root);
+    g_free(qov);
 }
 
 QmpOutputVisitor *qmp_output_visitor_new(void)
index debd7f13833d46fafa26016a52eb86740f98ffc7..728f471801398b6d26793fc8a3e432e6b4bc53ea 100644 (file)
@@ -500,7 +500,7 @@ static void dump_json_image_check(ImageCheck *check, bool quiet)
     assert(str != NULL);
     qprintf(quiet, "%s\n", qstring_get_str(str));
     qobject_decref(obj);
-    qmp_output_visitor_cleanup(ov);
+    visit_free(qmp_output_get_visitor(ov));
     QDECREF(str);
 }
 
@@ -2190,7 +2190,7 @@ static void dump_json_image_info_list(ImageInfoList *list)
     assert(str != NULL);
     printf("%s\n", qstring_get_str(str));
     qobject_decref(obj);
-    qmp_output_visitor_cleanup(ov);
+    visit_free(qmp_output_get_visitor(ov));
     QDECREF(str);
 }
 
@@ -2206,7 +2206,7 @@ static void dump_json_image_info(ImageInfo *info)
     assert(str != NULL);
     printf("%s\n", qstring_get_str(str));
     qobject_decref(obj);
-    qmp_output_visitor_cleanup(ov);
+    visit_free(qmp_output_get_visitor(ov));
     QDECREF(str);
 }
 
index c3c9188d001e2fefa8901e51734e5614156b730f..6714565f13ac3b3baa211a92f7eec399463becb8 100644 (file)
@@ -41,6 +41,6 @@ QObject *object_property_get_qobject(Object *obj, const char *name,
         ret = qmp_output_get_qobject(qov);
     }
     error_propagate(errp, local_err);
-    qmp_output_visitor_cleanup(qov);
+    visit_free(qmp_output_get_visitor(qov));
     return ret;
 }
index 7b6fa93b8d7dd42385142e197fa656c37842f434..9cbb4c19e9334185c82af3d5c9d232ac3167e630 100644 (file)
@@ -31,7 +31,7 @@ static InputEvent *qapi_clone_InputEvent(InputEvent *src)
     ov = qmp_output_get_visitor(qov);
     visit_type_InputEvent(ov, NULL, &src, &error_abort);
     obj = qmp_output_get_qobject(qov);
-    qmp_output_visitor_cleanup(qov);
+    visit_free(ov);
     if (!obj) {
         return NULL;
     }
index d0412e4169a8d45d9f04e325f86132cb8a41398b..6310bf7d41fdda79c9a02bd55cb999c0dc2bae5c 100644 (file)
@@ -58,7 +58,7 @@ static void qnull_visit_test(void)
     obj = qmp_output_get_qobject(qov);
     g_assert(obj == &qnull_);
     qobject_decref(obj);
-    qmp_output_visitor_cleanup(qov);
+    visit_free(qmp_output_get_visitor(qov));
 
     g_assert(qnull_.refcnt == 1);
 }
index 75c8e1b3e00d66b9fe000c4fc54e9ceb51dbabf1..45d87fb1608188f63ed61a4d55ae13f103256dd6 100644 (file)
@@ -38,7 +38,7 @@ static void visitor_output_setup(TestOutputVisitorData *data,
 static void visitor_output_teardown(TestOutputVisitorData *data,
                                     const void *unused)
 {
-    qmp_output_visitor_cleanup(data->qov);
+    visit_free(data->ov);
     data->qov = NULL;
     data->ov = NULL;
 }
index 3677cd21dcddd6991b8ce9f192095b537bae162b..01fc15481aad092b53cb01a0f2c93f072f8e56e4 100644 (file)
@@ -1157,7 +1157,7 @@ void qapi_copy_SocketAddress(SocketAddress **p_dest,
     ov = qmp_output_get_visitor(qov);
     visit_type_SocketAddress(ov, NULL, &src, &error_abort);
     obj = qmp_output_get_qobject(qov);
-    qmp_output_visitor_cleanup(qov);
+    visit_free(ov);
     if (!obj) {
         return;
     }