mirror of https://gitee.com/openkylin/qemu.git
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>
This commit is contained in:
parent
c6afd2bdfd
commit
78beee809d
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue