diff options
author | Alex Bennée | 2022-03-15 12:46:12 +0100 |
---|---|---|
committer | Alex Bennée | 2022-03-23 11:38:09 +0100 |
commit | 78beee809d49adc0862c89816d72ece57c3913b7 (patch) | |
tree | 811b17d15737171882008862b0fd5a36f722d743 /semihosting | |
parent | docs/devel: try and impose some organisation (diff) | |
download | qemu-78beee809d49adc0862c89816d72ece57c3913b7.tar.gz qemu-78beee809d49adc0862c89816d72ece57c3913b7.tar.xz qemu-78beee809d49adc0862c89816d72ece57c3913b7.zip |
semihosting: clean up handling of expanded argv
Another cleanup patch tripped over the fact we weren't being careful
in our casting. Fix the casts, allow for a non-const and switch from
g_realloc to g_renew.
The whole semihosting argument handling could do with some tests
though.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20220315121251.2280317-8-alex.bennee@linaro.org>
Diffstat (limited to 'semihosting')
-rw-r--r-- | semihosting/config.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/semihosting/config.c b/semihosting/config.c index 137171b717..50d82108e6 100644 --- a/semihosting/config.c +++ b/semihosting/config.c @@ -51,7 +51,7 @@ typedef struct SemihostingConfig { bool enabled; SemihostingTarget target; Chardev *chardev; - const char **argv; + char **argv; int argc; const char *cmdline; /* concatenated argv */ } SemihostingConfig; @@ -98,8 +98,8 @@ static int add_semihosting_arg(void *opaque, if (strcmp(name, "arg") == 0) { s->argc++; /* one extra element as g_strjoinv() expects NULL-terminated array */ - s->argv = g_realloc(s->argv, (s->argc + 1) * sizeof(void *)); - s->argv[s->argc - 1] = val; + s->argv = g_renew(char *, s->argv, s->argc + 1); + s->argv[s->argc - 1] = g_strdup(val); s->argv[s->argc] = NULL; } return 0; |