diff options
author | Tom Tromey <tromey@adacore.com> | 2024-03-21 11:15:56 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2024-03-22 13:17:43 -0600 |
commit | c05dd51122c2d654031b04e02ad0ea5b53ffe5e2 (patch) | |
tree | df883998b862b998f58d2b1edefa8bc96a84c725 /gdb/disasm.c | |
parent | af25053d5f9e1867bd0df1d5f168c803e1d7d015 (diff) | |
download | binutils-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.c | 20 |
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 |