From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MVuor-000191-7C for qemu-devel@nongnu.org; Tue, 28 Jul 2009 18:06:49 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MVuom-00011R-19 for qemu-devel@nongnu.org; Tue, 28 Jul 2009 18:06:48 -0400 Received: from [199.232.76.173] (port=49669 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MVuol-000118-Ou for qemu-devel@nongnu.org; Tue, 28 Jul 2009 18:06:43 -0400 Received: from mx2.redhat.com ([66.187.237.31]:37553) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MVuol-0000da-4v for qemu-devel@nongnu.org; Tue, 28 Jul 2009 18:06:43 -0400 From: Luiz Capitulino Date: Tue, 28 Jul 2009 19:05:09 -0300 Message-Id: <1248818713-11261-22-git-send-email-lcapitulino@redhat.com> In-Reply-To: <1248818713-11261-1-git-send-email-lcapitulino@redhat.com> References: <1248818713-11261-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, dlaor@redhat.com, avi@redhat.com, Luiz Capitulino 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 04cd94f..2f5025c 100644 --- a/monitor.c +++ b/monitor.c @@ -2697,12 +2697,11 @@ static const mon_cmd_t *monitor_parse_command(Monitor *mon, struct qemu_dict *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); @@ -2777,9 +2776,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) { qemu_dict_add(qdict, key, str); + nb_args++; + } } break; case '/': @@ -2858,78 +2858,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; qemu_dict_add(qdict, "count", (void*)(long)count); qemu_dict_add(qdict, "format", (void*)(long)format); qemu_dict_add(qdict, "size", (void*)(long)size); + nb_args += 3; } break; case 'i': case 'l': { int64_t val; - int qdict_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; - qdict_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 (qdict_add) - qemu_dict_add(qdict, key, (void *)(long) val); + qemu_dict_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); qemu_dict_add(qdict, lkey, (void *)(long)((val >> 32) & 0xffffffff)); qemu_free(lkey); + nb_args++; #else - args[nb_args++] = (void *)0; qemu_dict_add(qdict, lkey, (void *)0); qemu_free(lkey); + nb_args++; #endif - args[nb_args++] = (void *)(long)(val & 0xffffffff); lkey = key_append_low(key); qemu_dict_add(qdict, lkey,(void *)(long)(val & 0xffffffff)); qemu_free(lkey); + nb_args++; } } break; @@ -2956,8 +2943,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; qemu_dict_add(qdict, key, (void *)(long)has_option); + nb_args++; } break; default: -- 1.6.4.rc3.12.gdf73a