Now that we have a JSON output visitor, and the previous patch fixed the only client of vmstate to use it, we no longer need the simpler QJSON object doing the same thing.
Signed-off-by: Eric Blake <ebl...@redhat.com> --- v2: new patch This is part of alternative 2, along with patch 10. See also patch 8 for alternative 1. --- Makefile.objs | 1 - include/qjson.h | 29 ------------- qjson.c | 126 -------------------------------------------------------- 3 files changed, 156 deletions(-) delete mode 100644 include/qjson.h delete mode 100644 qjson.c diff --git a/Makefile.objs b/Makefile.objs index dac2c02..dbae7f8 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -51,7 +51,6 @@ common-obj-$(CONFIG_LINUX) += fsdev/ common-obj-y += migration/ common-obj-y += qemu-char.o #aio.o common-obj-y += page_cache.o -common-obj-y += qjson.o common-obj-$(CONFIG_SPICE) += spice-qemu-char.o diff --git a/include/qjson.h b/include/qjson.h deleted file mode 100644 index 7c54fdf..0000000 --- a/include/qjson.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * QEMU JSON writer - * - * Copyright Alexander Graf - * - * Authors: - * Alexander Graf <ag...@suse.de> - * - * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. - * See the COPYING.LIB file in the top-level directory. - * - */ -#ifndef QEMU_QJSON_H -#define QEMU_QJSON_H - -#define TYPE_QJSON "QJSON" -typedef struct QJSON QJSON; - -QJSON *qjson_new(void); -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); -void json_start_array(QJSON *json, const char *name); -void json_end_object(QJSON *json); -void json_start_object(QJSON *json, const char *name); -const char *qjson_get_str(QJSON *json); -void qjson_finish(QJSON *json); - -#endif /* QEMU_QJSON_H */ diff --git a/qjson.c b/qjson.c deleted file mode 100644 index 8c93c1b..0000000 --- a/qjson.c +++ /dev/null @@ -1,126 +0,0 @@ -/* - * QEMU JSON writer - * - * Copyright Alexander Graf - * - * Authors: - * Alexander Graf <ag...@suse.de> - * - * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. - * See the COPYING.LIB file in the top-level directory. - * - */ - -#include <qapi/qmp/qstring.h> -#include <stdbool.h> -#include <glib.h> -#include <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 */ - if (json->omit_comma) { - json->omit_comma = false; - } else { - qstring_append(json->str, ", "); - } - - if (name) { - qstring_append_json_string(json->str, name); - qstring_append(json->str, " : "); - } -} - -void json_start_object(QJSON *json, const char *name) -{ - json_emit_element(json, name); - qstring_append(json->str, "{ "); - json->omit_comma = true; -} - -void json_end_object(QJSON *json) -{ - qstring_append(json->str, " }"); - json->omit_comma = false; -} - -void json_start_array(QJSON *json, const char *name) -{ - json_emit_element(json, name); - qstring_append(json->str, "[ "); - json->omit_comma = true; -} - -void json_end_array(QJSON *json) -{ - qstring_append(json->str, " ]"); - json->omit_comma = false; -} - -void json_prop_int(QJSON *json, const char *name, int64_t val) -{ - json_emit_element(json, name); - qstring_append_format(json->str, "%" PRId64, val); -} - -void json_prop_str(QJSON *json, const char *name, const char *str) -{ - json_emit_element(json, name); - qstring_append_json_string(json->str, str); -} - -const char *qjson_get_str(QJSON *json) -{ - return qstring_get_str(json->str); -} - -QJSON *qjson_new(void) -{ - QJSON *json = QJSON(object_new(TYPE_QJSON)); - return json; -} - -void qjson_finish(QJSON *json) -{ - json_end_object(json); -} - -static void qjson_initfn(Object *obj) -{ - QJSON *json = QJSON(obj); - - json->str = qstring_from_str("{ "); - json->omit_comma = true; -} - -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) -- 2.4.3