gdbserver: cleanup in handle_v_run
After the previous commit there is now a redundant string copy in handle_v_run, this commit cleans that up. There should be no functional change after this commit. During review I was pointed to this older series: https://inbox.sourceware.org/gdb-patches/20211022071933.3478427-1-m.weghorn@posteo.de/ which also includes this fix as part of a larger set of changes. I'm giving a Co-Authored-By credit to the author of that original series. I believe this smaller fix brings some benefits on its own, though the original series does offer additional improvements. Once this is merged I'll take a look at rebasing and resubmitting the original series. Co-Authored-By: Michael Weghorn <m.weghorn@posteo.de> Approved-By: Tom Tromey <tom@tromey.com>
This commit is contained in:
parent
67e6945b7e
commit
f9089d2f7b
@ -2989,33 +2989,19 @@ handle_v_run (char *own_buf)
|
||||
}
|
||||
else
|
||||
{
|
||||
/* The length of the decoded argument. */
|
||||
size_t len = (next_p - p) / 2;
|
||||
/* ARG is the unquoted argument received via the RSP. */
|
||||
|
||||
/* Buffer to decode the argument into. */
|
||||
char *arg = (char *) xmalloc (len + 1);
|
||||
/* FULL_ARGS will contain the quoted version of ARG. */
|
||||
char *full_arg = (char *) xmalloc ((len + 1) * 2);
|
||||
/* These are pointers used to navigate the strings above. */
|
||||
char *tmp_arg = arg;
|
||||
char *tmp_full_arg = full_arg;
|
||||
|
||||
hex2bin (p, (gdb_byte *) arg, len);
|
||||
arg[len] = '\0';
|
||||
|
||||
while (*tmp_arg != '\0')
|
||||
{
|
||||
*tmp_full_arg = *tmp_arg;
|
||||
++tmp_full_arg;
|
||||
++tmp_arg;
|
||||
}
|
||||
|
||||
/* Finish FULL_ARG and push it into the vector containing
|
||||
the argv. */
|
||||
*tmp_full_arg = '\0';
|
||||
if (i == 0)
|
||||
new_program_name = full_arg;
|
||||
new_program_name = arg;
|
||||
else
|
||||
new_argv.push_back (full_arg);
|
||||
xfree (arg);
|
||||
new_argv.push_back (arg);
|
||||
}
|
||||
if (*next_p == '\0')
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user