diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2018-11-20 13:36:49 +0000 |
---|---|---|
committer | Andrew Burgess <andrew.burgess@embecosm.com> | 2018-11-20 23:01:42 +0000 |
commit | d63095c426f704f75d943a7481189628403ed58f (patch) | |
tree | e3974ee4d9d3fa46da651e1de06834fba41f3fbd | |
parent | 1871a62daf0561da0880ba1ad39e8191bc3cf1ac (diff) | |
download | binutils-gdb-d63095c426f704f75d943a7481189628403ed58f.tar.gz |
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.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/cli-out.c | 6 |
2 files changed, 7 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 66fe9c9f28f..ddd93f246b6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 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, and remove insertion of extra spaces in GDB's output. * cli-out.c (cli_ui_out::do_field_fmt): Update header comment. diff --git a/gdb/cli-out.c b/gdb/cli-out.c index 9ffd6f01577..7e3ee3e54c1 100644 --- a/gdb/cli-out.c +++ b/gdb/cli-out.c @@ -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 */ |