Le 07/02/2020 à 12:02, Philippe Mathieu-Daudé a écrit :
> It would be confusing to have multiple default machines.
> Abort if this ever occurs.
> 
> Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
> ---
>  vl.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/vl.c b/vl.c
> index 7dcb0879c4..da828188eb 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2354,6 +2354,8 @@ static MachineClass *machine_parse(const char *name, 
> GSList *machines)
>      GSList *el;
>  
>      if (is_help_option(name)) {
> +        int default_count = 0;
> +
>          printf("Supported machines are:\n");
>          machines = g_slist_sort(machines, machine_class_cmp);
>          for (el = machines; el; el = el->next) {
> @@ -2364,6 +2366,11 @@ static MachineClass *machine_parse(const char *name, 
> GSList *machines)
>              printf("%-20s %s%s%s\n", mc->name, mc->desc,
>                     mc->is_default ? " (default)" : "",
>                     mc->deprecation_reason ? " (deprecated)" : "");
> +            default_count += !!mc->is_default;
> +        }
> +        if (default_count > 1) {
> +            error_printf("Multiple default machines available\n");
> +            abort();
>          }
>          exit(0);
>      }
> 

Does it really deserve an abort?
Ideal solution would be to be able to check this at build or in the unit
tests.

Thanks,
Laurent

Reply via email to