Re: [RFA 14/23] Use unique_xmalloc_ptr in jit.c

Pedro Alves
2017-06-02T18:42:29Z

On 05/03/2017 11:46 PM, Tom Tromey wrote:
> static void
> jit_reader_load_command (char *args, int from_tty)
> {
> - char *so_name;
> - struct cleanup *prev_cleanup;
> -
> if (args == NULL)
> error (_("No reader name provided."));
> - args = tilde_expand (args);
> - prev_cleanup = make_cleanup (xfree, args);
> + gdb::unique_xmalloc_ptr<char> file (tilde_expand (args));
>
> if (loaded_jit_reader != NULL)
> error (_("JIT reader already loaded. Run jit-reader-unload first."));
>
> - if (IS_ABSOLUTE_PATH (args))
> - so_name = args;
> + gdb::unique_xmalloc_ptr<char> so_name;
> + if (IS_ABSOLUTE_PATH (file.get ()))
> + so_name = std::move (file);

I think we don't really need two unique pointers, and then
moving. I.e., this should do, I think:

if (loaded_jit_reader != NULL)
error (_("JIT reader already loaded. Run jit-reader-unload first."));

gdb::unique_xmalloc_ptr<char> so_name (tilde_expand (args));
if (!IS_ABSOLUTE_PATH (so_name.get ()))
so_name.reset (xstrprintf ("%s%s%s", jit_reader_dir, SLASH_STRING,
so_name.get ()));

Thanks,
Pedro Alves