summaryrefslogtreecommitdiffstats
path: root/qemu-img.c
diff options
context:
space:
mode:
authorMarkus Armbruster2020-12-11 18:11:37 +0100
committerMarkus Armbruster2020-12-19 10:38:43 +0100
commiteab3a4678b07267c39e7290a6e9e7690b1d2a521 (patch)
tree223d43bbde1e59f4f6867a36e2dfdf0ca36603f3 /qemu-img.c
parentqobject: Use GString instead of QString to accumulate JSON (diff)
downloadqemu-eab3a4678b07267c39e7290a6e9e7690b1d2a521.tar.gz
qemu-eab3a4678b07267c39e7290a6e9e7690b1d2a521.tar.xz
qemu-eab3a4678b07267c39e7290a6e9e7690b1d2a521.zip
qobject: Change qobject_to_json()'s value to GString
qobject_to_json() and qobject_to_json_pretty() build a GString, then covert it to QString. Just one of the callers actually needs a QString: qemu_rbd_parse_filename(). A few others need a string they can modify: qmp_send_response(), qga's send_response(), to_json_str(), and qmp_fd_vsend_fds(). The remainder just need a string. Change qobject_to_json() and qobject_to_json_pretty() to return the GString. qemu_rbd_parse_filename() now has to convert to QString. All others save a QString temporary. to_json_str() actually becomes a bit simpler, because GString provides more convenient modification functions. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20201211171152.146877-6-armbru@redhat.com>
Diffstat (limited to 'qemu-img.c')
-rw-r--r--qemu-img.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/qemu-img.c b/qemu-img.c
index 1a59dfd3f3..8597d069af 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -33,7 +33,6 @@
#include "qapi/qobject-output-visitor.h"
#include "qapi/qmp/qjson.h"
#include "qapi/qmp/qdict.h"
-#include "qapi/qmp/qstring.h"
#include "qemu/cutils.h"
#include "qemu/config-file.h"
#include "qemu/option.h"
@@ -627,7 +626,7 @@ fail:
static void dump_json_image_check(ImageCheck *check, bool quiet)
{
- QString *str;
+ GString *str;
QObject *obj;
Visitor *v = qobject_output_visitor_new(&obj);
@@ -635,10 +634,10 @@ static void dump_json_image_check(ImageCheck *check, bool quiet)
visit_complete(v, &obj);
str = qobject_to_json_pretty(obj, true);
assert(str != NULL);
- qprintf(quiet, "%s\n", qstring_get_str(str));
+ qprintf(quiet, "%s\n", str->str);
qobject_unref(obj);
visit_free(v);
- qobject_unref(str);
+ g_string_free(str, true);
}
static void dump_human_image_check(ImageCheck *check, bool quiet)
@@ -2789,7 +2788,7 @@ static void dump_snapshots(BlockDriverState *bs)
static void dump_json_image_info_list(ImageInfoList *list)
{
- QString *str;
+ GString *str;
QObject *obj;
Visitor *v = qobject_output_visitor_new(&obj);
@@ -2797,15 +2796,15 @@ static void dump_json_image_info_list(ImageInfoList *list)
visit_complete(v, &obj);
str = qobject_to_json_pretty(obj, true);
assert(str != NULL);
- printf("%s\n", qstring_get_str(str));
+ printf("%s\n", str->str);
qobject_unref(obj);
visit_free(v);
- qobject_unref(str);
+ g_string_free(str, true);
}
static void dump_json_image_info(ImageInfo *info)
{
- QString *str;
+ GString *str;
QObject *obj;
Visitor *v = qobject_output_visitor_new(&obj);
@@ -2813,10 +2812,10 @@ static void dump_json_image_info(ImageInfo *info)
visit_complete(v, &obj);
str = qobject_to_json_pretty(obj, true);
assert(str != NULL);
- printf("%s\n", qstring_get_str(str));
+ printf("%s\n", str->str);
qobject_unref(obj);
visit_free(v);
- qobject_unref(str);
+ g_string_free(str, true);
}
static void dump_human_image_info_list(ImageInfoList *list)
@@ -5236,7 +5235,7 @@ out:
static void dump_json_block_measure_info(BlockMeasureInfo *info)
{
- QString *str;
+ GString *str;
QObject *obj;
Visitor *v = qobject_output_visitor_new(&obj);
@@ -5244,10 +5243,10 @@ static void dump_json_block_measure_info(BlockMeasureInfo *info)
visit_complete(v, &obj);
str = qobject_to_json_pretty(obj, true);
assert(str != NULL);
- printf("%s\n", qstring_get_str(str));
+ printf("%s\n", str->str);
qobject_unref(obj);
visit_free(v);
- qobject_unref(str);
+ g_string_free(str, true);
}
static int img_measure(int argc, char **argv)