From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MY0sL-0006Kb-NJ for qemu-devel@nongnu.org; Mon, 03 Aug 2009 12:59:05 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MY0sH-0006JR-VZ for qemu-devel@nongnu.org; Mon, 03 Aug 2009 12:59:05 -0400 Received: from [199.232.76.173] (port=55294 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MY0sH-0006JK-JO for qemu-devel@nongnu.org; Mon, 03 Aug 2009 12:59:01 -0400 Received: from mx2.redhat.com ([66.187.237.31]:56383) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MY0sG-0003Dn-Rm for qemu-devel@nongnu.org; Mon, 03 Aug 2009 12:59:01 -0400 From: Luiz Capitulino Date: Mon, 3 Aug 2009 13:57:18 -0300 Message-Id: <1249318642-19324-22-git-send-email-lcapitulino@redhat.com> In-Reply-To: <1249318642-19324-1-git-send-email-lcapitulino@redhat.com> References: <1249318642-19324-1-git-send-email-lcapitulino@redhat.com> Subject: [Qemu-devel] [PATCH 21/25] monitor: Drop args[] from monitor_parse_command() List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: jan.kiszka@siemens.com, aliguori@us.ibm.com, avi@redhat.com Arguments are now passed through a dictionary. Signed-off-by: Luiz Capitulino --- monitor.c | 47 +++++++++++++++++------------------------------ 1 files changed, 17 insertions(+), 30 deletions(-) diff --git a/monitor.c b/monitor.c index 9640c68..331d456 100644 --- a/monitor.c +++ b/monitor.c @@ -2699,12 +2699,11 @@ static const mon_cmd_t *monitor_parse_command(Monitor *mon, QDict *qdict) { const char *p, *typestr; - int c, nb_args, has_arg, str_idx; + int c, nb_args, str_idx; const mon_cmd_t *cmd; char cmdname[256]; char buf[1024]; char *key; - void *args[MAX_ARGS]; #ifdef DEBUG monitor_printf(mon, "command='%s'\n", cmdline); @@ -2779,9 +2778,10 @@ static const mon_cmd_t *monitor_parse_command(Monitor *mon, monitor_printf(mon, "%s: too many arguments\n", cmdname); goto fail; } - args[nb_args++] = str; - if (str) + if (str) { qdict_add(qdict, key, str); + nb_args++; + } } break; case '/': @@ -2860,78 +2860,65 @@ static const mon_cmd_t *monitor_parse_command(Monitor *mon, } if (nb_args + 3 > MAX_ARGS) goto error_args; - args[nb_args++] = (void*)(long)count; - args[nb_args++] = (void*)(long)format; - args[nb_args++] = (void*)(long)size; qdict_add(qdict, "count", (void*)(long)count); qdict_add(qdict, "format", (void*)(long)format); qdict_add(qdict, "size", (void*)(long)size); + nb_args += 3; } break; case 'i': case 'l': { int64_t val; - int dict_add = 1; while (qemu_isspace(*p)) p++; if (*typestr == '?' || *typestr == '.') { if (*typestr == '?') { - if (*p == '\0') - has_arg = 0; - else - has_arg = 1; + if (*p == '\0') { + typestr++; + break; + } } else { if (*p == '.') { p++; while (qemu_isspace(*p)) p++; - has_arg = 1; } else { - has_arg = 0; + typestr++; + break; } } typestr++; if (nb_args >= MAX_ARGS) goto error_args; - dict_add = has_arg; - args[nb_args++] = (void *)(long)has_arg; - if (!has_arg) { - if (nb_args >= MAX_ARGS) - goto error_args; - val = -1; - goto add_num; - } } if (get_expr(mon, &val, &p)) goto fail; - add_num: if (c == 'i') { if (nb_args >= MAX_ARGS) goto error_args; - args[nb_args++] = (void *)(long)val; - if (dict_add) - qdict_add(qdict, key, (void *)(long) val); + qdict_add(qdict, key, (void *)(long) val); + nb_args++; } else { char *lkey; if ((nb_args + 1) >= MAX_ARGS) goto error_args; lkey = key_append_high(key); #if TARGET_PHYS_ADDR_BITS > 32 - args[nb_args++] = (void *)(long)((val >> 32) & 0xffffffff); qdict_add(qdict, lkey, (void *)(long)((val >> 32) & 0xffffffff)); qemu_free(lkey); + nb_args++; #else - args[nb_args++] = (void *)0; qdict_add(qdict, lkey, (void *)0); qemu_free(lkey); + nb_args++; #endif - args[nb_args++] = (void *)(long)(val & 0xffffffff); lkey = key_append_low(key); qdict_add(qdict, lkey,(void *)(long)(val & 0xffffffff)); qemu_free(lkey); + nb_args++; } } break; @@ -2958,8 +2945,8 @@ static const mon_cmd_t *monitor_parse_command(Monitor *mon, } if (nb_args >= MAX_ARGS) goto error_args; - args[nb_args++] = (void *)(long)has_option; qdict_add(qdict, key, (void *)(long)has_option); + nb_args++; } break; default: -- 1.6.4.rc3.12.gdf73a