From: Tom Tromey Date: Sun, 3 Oct 2021 14:16:50 +0000 (-0600) Subject: Use std::string in print_one_catch_syscall X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=570bc7936f5aa9299eee20ba3e170b44efd6c98f;p=binutils-gdb.git Use std::string in print_one_catch_syscall This changes print_one_catch_syscall to use std::string, removing a bit of manual memory management. --- diff --git a/gdb/break-catch-syscall.c b/gdb/break-catch-syscall.c index 32736f024ad..3d3b275c31e 100644 --- a/gdb/break-catch-syscall.c +++ b/gdb/break-catch-syscall.c @@ -250,28 +250,24 @@ print_one_catch_syscall (struct breakpoint *b, if (!c->syscalls_to_be_caught.empty ()) { - char *text = xstrprintf ("%s", ""); + std::string text; + bool first = true; for (int iter : c->syscalls_to_be_caught) { - char *previous_text = text; struct syscall s; get_syscall_by_number (gdbarch, iter, &s); + if (!first) + text += ", "; + first = false; + if (s.name != NULL) - text = xstrprintf ("%s%s, ", text, s.name); + text += s.name; else - text = xstrprintf ("%s%d, ", text, iter); - - /* We have to xfree previous_text because xstrprintf dynamically - allocates new space for text on every call. */ - xfree (previous_text); + text += std::to_string (iter); } - /* Remove the last comma. */ - text[strlen (text) - 2] = '\0'; - uiout->field_string ("what", text); - /* xfree last text. */ - xfree (text); + uiout->field_string ("what", text.c_str ()); } else uiout->field_string ("what", "", metadata_style.style ());