Simplify saved_command_line handling
There doesn't seem to be much point in trying to reuse this buffer. Prefer simplicity instead. (In case you're wondering whether this fixes an off-by-one: linelength is misnamed; it's really a size including terminating null char.) gdb/ChangeLog: 2016-03-09 Pedro Alves <palves@redhat.com> * event-top.c (command_line_handler): Use xfree + xstrdup instead of xrealloc + strcpy. * main.c (captured_main): Use xstrdup instead of xmalloc plus manual clear. * top.c (saved_command_line): Rewrite comment. (saved_command_line_size): Delete. (command_line_input): Use xfree + xstrdup instead of xrealloc + strcpy. * top.h (saved_command_line_size): Delete declaration.
This commit is contained in:
parent
187212b3c1
commit
2669cade3d
|
@ -1,3 +1,15 @@
|
|||
2016-03-09 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* event-top.c (command_line_handler): Use xfree + xstrdup instead
|
||||
of xrealloc + strcpy.
|
||||
* main.c (captured_main): Use xstrdup instead of xmalloc plus
|
||||
manual clear.
|
||||
* top.c (saved_command_line): Rewrite comment.
|
||||
(saved_command_line_size): Delete.
|
||||
(command_line_input): Use xfree + xstrdup instead of xrealloc +
|
||||
strcpy.
|
||||
* top.h (saved_command_line_size): Delete declaration.
|
||||
|
||||
2016-03-09 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* event-top.c: Include buffer.h.
|
||||
|
|
|
@ -650,13 +650,8 @@ command_line_handler (char *rl)
|
|||
/* Save into global buffer if appropriate. */
|
||||
if (repeat)
|
||||
{
|
||||
if (linelength > saved_command_line_size)
|
||||
{
|
||||
saved_command_line
|
||||
= (char *) xrealloc (saved_command_line, linelength);
|
||||
saved_command_line_size = linelength;
|
||||
}
|
||||
strcpy (saved_command_line, linebuffer);
|
||||
xfree (saved_command_line);
|
||||
saved_command_line = xstrdup (linebuffer);
|
||||
if (!more_to_come)
|
||||
{
|
||||
command_handler (saved_command_line);
|
||||
|
|
|
@ -506,8 +506,7 @@ captured_main (void *data)
|
|||
ndir = 0;
|
||||
|
||||
clear_quit_flag ();
|
||||
saved_command_line = (char *) xmalloc (saved_command_line_size);
|
||||
saved_command_line[0] = '\0';
|
||||
saved_command_line = (char *) xstrdup ("");
|
||||
instream = stdin;
|
||||
|
||||
#ifdef __MINGW32__
|
||||
|
|
15
gdb/top.c
15
gdb/top.c
|
@ -125,11 +125,9 @@ char *current_directory;
|
|||
/* The directory name is actually stored here (usually). */
|
||||
char gdb_dirbuf[1024];
|
||||
|
||||
/* Buffer used for reading command lines, and the size
|
||||
allocated for it so far. */
|
||||
|
||||
/* The last command line executed on the console. Used for command
|
||||
repetitions. */
|
||||
char *saved_command_line;
|
||||
int saved_command_line_size = 100;
|
||||
|
||||
/* Nonzero if the current command is modified by "server ". This
|
||||
affects things like recording into the command history, commands
|
||||
|
@ -1222,13 +1220,8 @@ command_line_input (const char *prompt_arg, int repeat, char *annotation_suffix)
|
|||
/* Save into global buffer if appropriate. */
|
||||
if (repeat)
|
||||
{
|
||||
if (linelength > saved_command_line_size)
|
||||
{
|
||||
saved_command_line
|
||||
= (char *) xrealloc (saved_command_line, linelength);
|
||||
saved_command_line_size = linelength;
|
||||
}
|
||||
strcpy (saved_command_line, linebuffer);
|
||||
xfree (saved_command_line);
|
||||
saved_command_line = xstrdup (linebuffer);
|
||||
return saved_command_line;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue