Replace some uses of xstrprintf with string_printf

This patch replaces some simple uses of xstrprintf with with
string_printf, removing the need to do manual memory freeing.

The change in ada-lang.c fixes an apparent memory leak.

Regtested on the buildbot.

gdb/ChangeLog:

	* common/filestuff.h (gdb_fopen_cloexec): New overload.
	(gdb_open_cloexec): Likewise.
	* nat/linux-osdata.c (command_from_pid): Use string_printf.
	(commandline_from_pid): Likewise.
	(linux_xfer_osdata_threads): Likewise.
	(linux_xfer_osdata_fds): Likewise.
	* ada-lang.c (is_package_name): Likewise.
	* auxv.c (procfs_xfer_auxv): Likewise.
	* breakpoint.c (print_one_breakpoint_location): Use
	uiout::field_fmt.
	(print_one_catch_solib): Use string_printf.
	* coff-pe-read.c (add_pe_exported_sym): Likewise.
	(add_pe_forwarded_sym): Likewise.
	* dwarf2read.c (create_type_unit_group): Likewise.
	(build_error_marker_type): Likewise.
	* infcall.c (get_function_name): Likewise.
	* valprint.c (print_converted_chars_to_obstack): Likewise.
	* xtensa-tdep.c (xtensa_register_type): Likewise.
This commit is contained in:
Simon Marchi
2018-08-07 17:43:08 -04:00
parent 96d68bd48c
commit 528e15722b
11 changed files with 99 additions and 83 deletions

View File

@@ -6038,16 +6038,9 @@ print_one_breakpoint_location (struct breakpoint *b,
/* 1 */
annotate_field (0);
if (part_of_multiple)
{
char *formatted;
formatted = xstrprintf ("%d.%d", b->number, loc_number);
uiout->field_string ("number", formatted);
xfree (formatted);
}
uiout->field_fmt ("number", "%d.%d", b->number, loc_number);
else
{
uiout->field_int ("number", b->number);
}
uiout->field_int ("number", b->number);
/* 2 */
annotate_field (1);
@@ -8048,7 +8041,6 @@ print_one_catch_solib (struct breakpoint *b, struct bp_location **locs)
struct solib_catchpoint *self = (struct solib_catchpoint *) b;
struct value_print_options opts;
struct ui_out *uiout = current_uiout;
char *msg;
get_user_print_options (&opts);
/* Field 4, the address, is omitted (which makes the columns not
@@ -8060,23 +8052,23 @@ print_one_catch_solib (struct breakpoint *b, struct bp_location **locs)
uiout->field_skip ("addr");
}
std::string msg;
annotate_field (5);
if (self->is_load)
{
if (self->regex)
msg = xstrprintf (_("load of library matching %s"), self->regex);
msg = string_printf (_("load of library matching %s"), self->regex);
else
msg = xstrdup (_("load of library"));
msg = _("load of library");
}
else
{
if (self->regex)
msg = xstrprintf (_("unload of library matching %s"), self->regex);
msg = string_printf (_("unload of library matching %s"), self->regex);
else
msg = xstrdup (_("unload of library"));
msg = _("unload of library");
}
uiout->field_string ("what", msg);
xfree (msg);
if (uiout->is_mi_like_p ())
uiout->field_string ("catch-type", self->is_load ? "load" : "unload");