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>
This commit is contained in:
Markus Armbruster
2020-12-11 18:11:37 +01:00
parent f1cc129df8
commit eab3a4678b
12 changed files with 79 additions and 93 deletions

View File

@ -284,15 +284,15 @@ static void to_json(const QObject *obj, GString *accu, bool pretty, int indent)
}
}
QString *qobject_to_json_pretty(const QObject *obj, bool pretty)
GString *qobject_to_json_pretty(const QObject *obj, bool pretty)
{
GString *accu = g_string_new(NULL);
to_json(obj, accu, pretty, 0);
return qstring_from_gstring(accu);
return accu;
}
QString *qobject_to_json(const QObject *obj)
GString *qobject_to_json(const QObject *obj)
{
return qobject_to_json_pretty(obj, false);
}