]> git.proxmox.com Git - mirror_qemu.git/commit
qobject: Factor JSON writer out of qobject_to_json()
authorMarkus Armbruster <armbru@redhat.com>
Fri, 11 Dec 2020 17:11:47 +0000 (18:11 +0100)
committerMarkus Armbruster <armbru@redhat.com>
Sat, 19 Dec 2020 09:39:16 +0000 (10:39 +0100)
commit998da0b1581bfda6d6d0e82b9e42edfa1bf5cfe5
tree6b2046f40c846775fa91b1b205f61f0e277ddb15
parent91f54d92c752e392be4903c9ad2846b2cdd0398d
qobject: Factor JSON writer out of qobject_to_json()

We have two JSON writers written in C: qobject/qjson.c provides
qobject_to_json(), and migration/qjson.c provides a more low level
imperative interface.  They don't share code.  The latter tacitly
limits numbers to int64_t, and strings contents to characters that
don't need escaping.

Factor out qobject_to_json()'s JSON writer as qobject/json-writer.c.
Straightforward, except for numbers: since the writer is to be
independent of QObject, it can't use qnum_to_string().  Open-code it
instead.  This is actually an improvement of sorts, because it
liberates qnum_to_string() from JSON's needs: its JSON-related FIXMEs
move to the JSON writer, where they belong.

The next commit will replace migration/qjson.c.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20201211171152.146877-16-armbru@redhat.com>
include/qapi/qmp/json-writer.h [new file with mode: 0644]
qobject/json-writer.c [new file with mode: 0644]
qobject/meson.build
qobject/qjson.c
qobject/qnum.c