aboutsummaryrefslogtreecommitdiff
path: root/gdb/disasm.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2024-03-21 11:15:56 -0600
committerTom Tromey <tromey@adacore.com>2024-03-22 13:17:43 -0600
commitc05dd51122c2d654031b04e02ad0ea5b53ffe5e2 (patch)
treedf883998b862b998f58d2b1edefa8bc96a84c725 /gdb/disasm.c
parentaf25053d5f9e1867bd0df1d5f168c803e1d7d015 (diff)
downloadbinutils-c05dd51122c2d654031b04e02ad0ea5b53ffe5e2.zip
binutils-c05dd51122c2d654031b04e02ad0ea5b53ffe5e2.tar.gz
binutils-c05dd51122c2d654031b04e02ad0ea5b53ffe5e2.tar.bz2
Use std::string for disassembler options
I noticed that the disassembler_options code uses manual memory management. It seemed simpler to replace this with std::string. Approved-By: John Baldwin <jhb@FreeBSD.org>
Diffstat (limited to 'gdb/disasm.c')
-rw-r--r--gdb/disasm.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/gdb/disasm.c b/gdb/disasm.c
index 5bab5cf..cafbc07 100644
--- a/gdb/disasm.c
+++ b/gdb/disasm.c
@@ -1294,17 +1294,17 @@ gdb_buffered_insn_length (struct gdbarch *gdbarch,
const char *
get_disassembler_options (struct gdbarch *gdbarch)
{
- char **disassembler_options = gdbarch_disassembler_options (gdbarch);
- if (disassembler_options == NULL)
- return NULL;
- return *disassembler_options;
+ std::string *disassembler_options = gdbarch_disassembler_options (gdbarch);
+ if (disassembler_options == nullptr || disassembler_options->empty ())
+ return nullptr;
+ return disassembler_options->c_str ();
}
void
set_disassembler_options (const char *prospective_options)
{
struct gdbarch *gdbarch = get_current_arch ();
- char **disassembler_options = gdbarch_disassembler_options (gdbarch);
+ std::string *disassembler_options = gdbarch_disassembler_options (gdbarch);
const disasm_options_and_args_t *valid_options_and_args;
const disasm_options_t *valid_options;
gdb::unique_xmalloc_ptr<char> prospective_options_local
@@ -1317,11 +1317,8 @@ set_disassembler_options (const char *prospective_options)
to reset their disassembler options to NULL. */
if (options == NULL)
{
- if (disassembler_options != NULL)
- {
- free (*disassembler_options);
- *disassembler_options = NULL;
- }
+ if (disassembler_options != nullptr)
+ disassembler_options->clear ();
return;
}
@@ -1373,8 +1370,7 @@ set_disassembler_options (const char *prospective_options)
}
}
- free (*disassembler_options);
- *disassembler_options = xstrdup (options);
+ *disassembler_options = options;
}
static void