[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 05/18] qom: Drop convenience method object_property_get_uint16
From: |
Markus Armbruster |
Subject: |
[PATCH v2 05/18] qom: Drop convenience method object_property_get_uint16List() |
Date: |
Tue, 5 May 2020 17:29:13 +0200 |
qom/object.c provides object_property_get_TYPE() and
object_property_set_TYPE() for a number of common types. These are
all convenience wrappers around object_property_get_qobject() and
object_property_set_qobject().
Except for object_property_get_uint16List(), which is unusual in two ways:
* It bypasses object_property_get_qobject(). Fixable; the previous
commit did it for object_property_get_enum())
* It stores the value through a parameter. Its contract claims it
returns the value, like the other functions do. Also fixable.
Fixing is not worthwhile, though: object_property_get_uint16List() has
seen exactly one user in six years.
Convert the lone user to do its job with the generic
object_property_get_qobject(), and drop object_property_get_qobject().
Signed-off-by: Markus Armbruster <address@hidden>
---
include/qom/object.h | 14 --------------
hw/core/machine-qmp-cmds.c | 16 +++++++++++++---
qom/object.c | 23 -----------------------
3 files changed, 13 insertions(+), 40 deletions(-)
diff --git a/include/qom/object.h b/include/qom/object.h
index ccfa82e33d..4df9ecebad 100644
--- a/include/qom/object.h
+++ b/include/qom/object.h
@@ -1320,20 +1320,6 @@ uint64_t object_property_get_uint(Object *obj, const
char *name,
int object_property_get_enum(Object *obj, const char *name,
const char *typename, Error **errp);
-/**
- * object_property_get_uint16List:
- * @obj: the object
- * @name: the name of the property
- * @list: the returned int list
- * @errp: returns an error if this function fails
- *
- * Returns: the value of the property, converted to integers, or
- * undefined if an error occurs (including when the property value is not
- * an list of integers).
- */
-void object_property_get_uint16List(Object *obj, const char *name,
- uint16List **list, Error **errp);
-
/**
* object_property_set:
* @obj: the object
diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c
index eed5aeb2f7..2c5da8413d 100644
--- a/hw/core/machine-qmp-cmds.c
+++ b/hw/core/machine-qmp-cmds.c
@@ -11,9 +11,13 @@
#include "cpu.h"
#include "hw/boards.h"
#include "qapi/error.h"
+#include "qapi/qapi-builtin-visit.h"
#include "qapi/qapi-commands-machine.h"
#include "qapi/qmp/qerror.h"
+#include "qapi/qmp/qobject.h"
+#include "qapi/qobject-input-visitor.h"
#include "qemu/main-loop.h"
+#include "qom/qom-qobject.h"
#include "sysemu/hostmem.h"
#include "sysemu/hw_accel.h"
#include "sysemu/numa.h"
@@ -303,6 +307,8 @@ static int query_memdev(Object *obj, void *opaque)
{
MemdevList **list = opaque;
MemdevList *m = NULL;
+ QObject *host_nodes;
+ Visitor *v;
if (object_dynamic_cast(obj, TYPE_MEMORY_BACKEND)) {
m = g_malloc0(sizeof(*m));
@@ -325,9 +331,13 @@ static int query_memdev(Object *obj, void *opaque)
"policy",
"HostMemPolicy",
&error_abort);
- object_property_get_uint16List(obj, "host-nodes",
- &m->value->host_nodes,
- &error_abort);
+ host_nodes = object_property_get_qobject(obj,
+ "host-nodes",
+ &error_abort);
+ v = qobject_input_visitor_new(host_nodes);
+ visit_type_uint16List(v, NULL, &m->value->host_nodes, &error_abort);
+ visit_free(v);
+ qobject_unref(host_nodes);
m->next = *list;
*list = m;
diff --git a/qom/object.c b/qom/object.c
index b374af302c..54a26ed16a 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -1550,29 +1550,6 @@ int object_property_get_enum(Object *obj, const char
*name,
return ret;
}
-void object_property_get_uint16List(Object *obj, const char *name,
- uint16List **list, Error **errp)
-{
- Error *err = NULL;
- Visitor *v;
- char *str;
-
- v = string_output_visitor_new(false, &str);
- object_property_get(obj, v, name, &err);
- if (err) {
- error_propagate(errp, err);
- goto out;
- }
- visit_complete(v, &str);
- visit_free(v);
- v = string_input_visitor_new(str);
- visit_type_uint16List(v, NULL, list, errp);
-
- g_free(str);
-out:
- visit_free(v);
-}
-
void object_property_parse(Object *obj, const char *string,
const char *name, Error **errp)
{
--
2.21.1
- [PATCH v2 00/18] qom: Spring cleaning, Markus Armbruster, 2020/05/05
- [PATCH v2 01/18] qom: Clearer reference counting in object_initialize_childv(), Markus Armbruster, 2020/05/05
- [PATCH v2 04/18] qom: Simplify object_property_get_enum(), Markus Armbruster, 2020/05/05
- [PATCH v2 11/18] e1000: Don't run e1000_instance_init() twice, Markus Armbruster, 2020/05/05
- [PATCH v2 05/18] qom: Drop convenience method object_property_get_uint16List(),
Markus Armbruster <=
- [PATCH v2 02/18] qom: Clean up inconsistent use of gchar * vs. char *, Markus Armbruster, 2020/05/05
- [PATCH v2 13/18] qdev: Clean up qdev_connect_gpio_out_named(), Markus Armbruster, 2020/05/05
- [PATCH v2 06/18] qom: Make all the object_property_add_FOO() return the property, Markus Armbruster, 2020/05/05
- [PATCH v2 08/18] tests/check-qom-proplist: Improve iterator coverage, Markus Armbruster, 2020/05/05
- [PATCH v2 15/18] Drop more @errp parameters after previous commit, Markus Armbruster, 2020/05/05
- [PATCH v2 18/18] qom: Drop @errp parameter of object_property_del(), Markus Armbruster, 2020/05/05
- [PATCH v2 10/18] hw/isa/superio: Make the components QOM children, Markus Armbruster, 2020/05/05