diff --git a/monitor.c b/monitor.c index 672afee4a7..e702278950 100644 --- a/monitor.c +++ b/monitor.c @@ -1515,11 +1515,15 @@ static void do_stop_capture(Monitor *mon, const QDict *qdict) } } -static void do_wav_capture(Monitor *mon, const char *path, - int has_freq, int freq, - int has_bits, int bits, - int has_channels, int nchannels) +static void do_wav_capture(Monitor *mon, const QDict *qdict) { + const char *path = qdict_get_str(qdict, "path"); + int has_freq = qdict_haskey(qdict, "freq"); + int freq = qdict_get_try_int(qdict, "freq", -1); + int has_bits = qdict_haskey(qdict, "bits"); + int bits = qdict_get_try_int(qdict, "bits", -1); + int has_channels = qdict_haskey(qdict, "nchannels"); + int nchannels = qdict_get_try_int(qdict, "nchannels", -1); CaptureState *s; s = qemu_mallocz (sizeof (*s)); @@ -2601,8 +2605,6 @@ static void monitor_handle_command(Monitor *mon, const char *cmdline) void *str_allocated[MAX_ARGS]; void *args[MAX_ARGS]; void (*handler_d)(Monitor *mon, const QDict *qdict); - void (*handler_7)(Monitor *mon, void *arg0, void *arg1, void *arg2, - void *arg3, void *arg4, void *arg5, void *arg6); void (*handler_8)(Monitor *mon, void *arg0, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6, void *arg7); @@ -2891,14 +2893,10 @@ static void monitor_handle_command(Monitor *mon, const char *cmdline) case 4: case 5: case 6: + case 7: handler_d = cmd->handler; handler_d(mon, qdict); break; - case 7: - handler_7 = cmd->handler; - handler_7(mon, args[0], args[1], args[2], args[3], args[4], args[5], - args[6]); - break; case 8: handler_8 = cmd->handler; handler_8(mon, args[0], args[1], args[2], args[3], args[4], args[5],