diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2019-11-13 11:44:48 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2019-12-17 19:32:26 +0100 |
commit | e5db4bd863c8fdf155b003446b98a7aec65a931c (patch) | |
tree | cdc8280bfd2b1c9b9d47fb227f2b1a5fdcffb5b4 | |
parent | 03a7a1961f0ace505dc62d38be84ce3de6c9e92e (diff) |
vl: introduce object_parse_property_opt
We will reuse the parsing loop of machine_set_property soon for "-accel",
but we do not want the "_" -> "-" conversion since "-accel" can just
standardize on dashes. We will also add a bunch of legacy option handling
to keep the QOM machine object clean. Extract the loop into a separate
function, and keep the legacy handling in machine_set_property.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r-- | vl.c | 35 |
1 files changed, 20 insertions, 15 deletions
@@ -2490,27 +2490,17 @@ static MachineClass *select_machine(void) return machine_class; } -static int machine_set_property(void *opaque, - const char *name, const char *value, - Error **errp) +static int object_parse_property_opt(Object *obj, + const char *name, const char *value, + const char *skip, Error **errp) { - Object *obj = OBJECT(opaque); Error *local_err = NULL; - char *p, *qom_name; - if (strcmp(name, "type") == 0) { + if (g_str_equal(name, skip)) { return 0; } - qom_name = g_strdup(name); - for (p = qom_name; *p; p++) { - if (*p == '_') { - *p = '-'; - } - } - - object_property_parse(obj, value, qom_name, &local_err); - g_free(qom_name); + object_property_parse(obj, value, name, &local_err); if (local_err) { error_propagate(errp, local_err); @@ -2520,6 +2510,21 @@ static int machine_set_property(void *opaque, return 0; } +static int machine_set_property(void *opaque, + const char *name, const char *value, + Error **errp) +{ + g_autofree char *qom_name = g_strdup(name); + char *p; + + for (p = qom_name; *p; p++) { + if (*p == '_') { + *p = '-'; + } + } + + return object_parse_property_opt(opaque, name, value, "type", errp); +} /* * Initial object creation happens before all other |