gdb: Use string_printf to format int fields instead of a fixed size buffer

This patch removes a FIXME comment from cli-out.c, now instead of
formatting integers into a fixed size buffer we build a std::string
and extract the formatted integer from that.

The old code using a fixed size buffer was probably fine (the integer
was not going to overflow it) and probably slightly more efficient
(avoids building a std::string) however, given we already have utility
code in GDB that will allow the 'FIXME' comment to be removed, it
seems like an easy improvement.

gdb/ChangeLog:

	* cli-out.c (cli_ui_out::do_field_int): Use string_printf rather
	than a fixed size buffer.
This commit is contained in:
Andrew Burgess 2018-11-20 13:36:49 +00:00
parent 1871a62daf
commit d63095c426
2 changed files with 7 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2018-11-20 Andrew Burgess <andrew.burgess@embecosm.com>
* cli-out.c (cli_ui_out::do_field_int): Use string_printf rather
than a fixed size buffer.
2018-11-20 Andrew Burgess <andrew.burgess@embecosm.com>
* breakpoint.c (print_one_breakpoint_location): Reduce whitespace,

View File

@ -94,14 +94,12 @@ void
cli_ui_out::do_field_int (int fldno, int width, ui_align alignment,
const char *fldname, int value)
{
char buffer[20]; /* FIXME: how many chars long a %d can become? */
if (m_suppress_output)
return;
xsnprintf (buffer, sizeof (buffer), "%d", value);
std::string str = string_printf ("%d", value);
do_field_string (fldno, width, alignment, fldname, buffer);
do_field_string (fldno, width, alignment, fldname, str.c_str ());
}
/* used to omit a field */