This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 2/22/19 8:36 AM, Tom Tromey wrote: > commit 192b62ce0b4bb5c61188f570e127a26d2c32f716 ("Use class to manage > BFD reference counts") changed darwin_get_dyld_bfd to use: > > + dyld_bfd.release (); > > rather than > > - do_cleanups (cleanup); > > However, using release here leaks the BFD. Instead I believe reset > should be used instead. > > I can't readily test this, so please take a look and let me know what > you think. > > gdb/ChangeLog > 2019-02-22 Tom Tromey <tromey@adacore.com> > > * solib-darwin.c (darwin_get_dyld_bfd): Use reset, not release. > --- > gdb/ChangeLog | 4 ++++ > gdb/solib-darwin.c | 2 +- > 2 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c > index d3060604bad..da410ad4660 100644 > --- a/gdb/solib-darwin.c > +++ b/gdb/solib-darwin.c > @@ -455,7 +455,7 @@ darwin_get_dyld_bfd () > if (sub != NULL) > dyld_bfd = sub; > else > - dyld_bfd.release (); > + dyld_bfd.reset (nullptr); > } > return dyld_bfd; > } I haven't tested, but this LGTM. Simon has noticed several instances of this bug where release() was used instead of reset(). (The most recent one was in the build-id separate debug file code that I think hasn't been committed yet.) It might be worth doing a quick sweep of current 'release' calls (if there aren't too many) to check for other leaks. -- John Baldwin
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |