The migrate_set_parameter_completion function is the last user of the MigrationParameter enum. Write the code using an output visitor and QDict instead so we can remove the enum in a future patch.
Signed-off-by: Fabiano Rosas <[email protected]> --- migration/migration-hmp-cmds.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c index dff69650a0c..d0adda25090 100644 --- a/migration/migration-hmp-cmds.c +++ b/migration/migration-hmp-cmds.c @@ -791,14 +791,19 @@ void migrate_set_capability_completion(ReadLineState *rs, int nb_args, void migrate_set_parameter_completion(ReadLineState *rs, int nb_args, const char *str) { + g_autoptr(MigrationParameters) params = g_new0(MigrationParameters, 1); + g_autoptr(QDict) d = migrate_params_to_dict(params, NULL); + const QDictEntry *e; size_t len; len = strlen(str); readline_set_completion_index(rs, len); if (nb_args == 2) { - int i; - for (i = 0; i < MIGRATION_PARAMETER__MAX; i++) { - readline_add_completion_of(rs, str, MigrationParameter_str(i)); + for (e = qdict_first(d); e; e = qdict_next(d, e)) { + const char *key = qdict_entry_key(e); + if (!g_str_has_prefix(key, "has-")) { + readline_add_completion_of(rs, str, key); + } } } } -- 2.53.0
