From: "Dr. David Alan Gilbert" <dgilb...@redhat.com> Simplify qom_set by making it use qmp_qom_set and the JSON parser.
Note that qom-set likes JSON strings quoted with ' not ", e.g.: (qemu) qom-get /machine smm "auto" (qemu) qom-set /machine smm 'auto' Signed-off-by: Dr. David Alan Gilbert <dgilb...@redhat.com> --- qom/qom-hmp-cmds.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/qom/qom-hmp-cmds.c b/qom/qom-hmp-cmds.c index a8b0a080c7..f704b6949a 100644 --- a/qom/qom-hmp-cmds.c +++ b/qom/qom-hmp-cmds.c @@ -48,19 +48,13 @@ void hmp_qom_set(Monitor *mon, const QDict *qdict) const char *property = qdict_get_str(qdict, "property"); const char *value = qdict_get_str(qdict, "value"); Error *err = NULL; - bool ambiguous = false; - Object *obj; + QObject *obj; - obj = object_resolve_path(path, &ambiguous); - if (obj == NULL) { - error_set(&err, ERROR_CLASS_DEVICE_NOT_FOUND, - "Device '%s' not found", path); - } else { - if (ambiguous) { - monitor_printf(mon, "Warning: Path '%s' is ambiguous\n", path); - } - object_property_parse(obj, value, property, &err); + obj = qobject_from_json(value, &err); + if (err == NULL) { + qmp_qom_set(path, property, obj, &err); } + hmp_handle_error(mon, err); } -- 2.26.2