From: Simon Marchi <simon.marchi@polymtl.ca>
To: Tom Tromey <tom@tromey.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [RFA] Use gdb::unique_xmalloc_ptr when calling tilde_expand
Date: Fri, 04 Aug 2017 14:52:00 -0000 [thread overview]
Message-ID: <faf542e39709dcf6443cb9b4715a7488@polymtl.ca> (raw)
In-Reply-To: <87bmnv8n2y.fsf@tromey.com>
On 2017-08-04 15:44, Tom Tromey wrote:
>>>>>> "Simon" == Simon Marchi <simon.marchi@polymtl.ca> writes:
>
> Simon> The patch looks good to me. I noted two formatting nits (that
> were
> Simon> present before this patch), could you fix them before pushing?
>
> I did this. I don't really like fixing random things in the context of
> a patch. Normally in fact I would expect patches containing unrelated
> changes like that to be rejected on the basis of not being
> single-purpose.
I agree with you on the idea, we just have different criteria about what
unrelated means. In this case since you're touching the source line
inside, I would say that it's ok to fix the surrounding formatting at
the same time. Anyhow, not a big deal.
> Simon> Hmm, the old code discarded the cleanup and did an xstrdup, that
> seems
> Simon> like a leak that you fixed :)
>
> Yeah. I found another leak as well, but I haven't sent the patch for
> that yet.
>
> I noticed I sent the wrong patch -- it didn't include all the changes
> to
> solib.c. So, I'm re-sending it rather than checking it in. The
> additional changes were part of the buildbot try run though; they were
> just an earlier commit I forgot to squash.
Ok, I assume everything except solib.c is unchanged, so I'll just take a
look at solib.c.
> diff --git a/gdb/solib.c b/gdb/solib.c
> index 5b538eb..195183d 100644
> --- a/gdb/solib.c
> +++ b/gdb/solib.c
> @@ -546,14 +546,10 @@ static int
> solib_map_sections (struct so_list *so)
> {
> const struct target_so_ops *ops = solib_ops (target_gdbarch ());
> - char *filename;
> struct target_section *p;
> - struct cleanup *old_chain;
>
> - filename = tilde_expand (so->so_name);
> - old_chain = make_cleanup (xfree, filename);
> - gdb_bfd_ref_ptr abfd (ops->bfd_open (filename));
> - do_cleanups (old_chain);
> + gdb::unique_xmalloc_ptr<char> filename (tilde_expand (so->so_name));
> + gdb_bfd_ref_ptr abfd (ops->bfd_open (filename.get ()));
>
> if (abfd == NULL)
> return 0;
> @@ -1301,23 +1297,22 @@ static void
> reload_shared_libraries_1 (int from_tty)
> {
> struct so_list *so;
> - struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
>
> if (print_symbol_loading_p (from_tty, 0, 0))
> printf_unfiltered (_("Loading symbols for shared libraries.\n"));
>
> for (so = so_list_head; so != NULL; so = so->next)
> {
> - char *filename, *found_pathname = NULL;
> + char *found_pathname = NULL;
> int was_loaded = so->symbols_loaded;
> symfile_add_flags add_flags = SYMFILE_DEFER_BP_RESET;
>
> if (from_tty)
> add_flags |= SYMFILE_VERBOSE;
>
> - filename = tilde_expand (so->so_original_name);
> - make_cleanup (xfree, filename);
> - gdb_bfd_ref_ptr abfd (solib_bfd_open (filename));
> + gdb::unique_xmalloc_ptr<char> filename
> + (tilde_expand (so->so_original_name));
> + gdb_bfd_ref_ptr abfd (solib_bfd_open (filename.get ()));
> if (abfd != NULL)
> {
> found_pathname = xstrdup (bfd_get_filename (abfd.get ()));
> @@ -1364,8 +1359,6 @@ reload_shared_libraries_1 (int from_tty)
> solib_read_symbols (so, add_flags);
> }
> }
> -
> - do_cleanups (old_chain);
There is still a cleanup in reload_shared_libraries_1, so I don't think
the do_cleanups should be removed.
Simon
next prev parent reply other threads:[~2017-08-04 14:52 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-03 21:44 Tom Tromey
2017-08-04 9:41 ` Simon Marchi
2017-08-04 13:44 ` Tom Tromey
2017-08-04 14:52 ` Simon Marchi [this message]
2017-08-04 17:13 ` Tom Tromey
2017-08-04 20:28 ` Simon Marchi
2017-08-04 20:34 ` Simon Marchi
2017-08-05 16:25 ` Tom Tromey
2017-08-05 16:40 ` Simon Marchi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=faf542e39709dcf6443cb9b4715a7488@polymtl.ca \
--to=simon.marchi@polymtl.ca \
--cc=gdb-patches@sourceware.org \
--cc=tom@tromey.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox