aboutsummaryrefslogtreecommitdiff
path: root/gdb/source.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-02-22 15:21:42 -0700
committerTom Tromey <tom@tromey.com>2018-03-08 22:00:08 -0700
commit5dc1a7047a77f86de7518a99805af64891d4e22a (patch)
treec7ba135d8453850fbfe0af19b69cd144a93c17a3 /gdb/source.c
parentfdf07f3aeba5906fec462fba33801c173862f241 (diff)
downloadgdb-5dc1a7047a77f86de7518a99805af64891d4e22a.zip
gdb-5dc1a7047a77f86de7518a99805af64891d4e22a.tar.gz
gdb-5dc1a7047a77f86de7518a99805af64891d4e22a.tar.bz2
Use scoped_fd in more places
This changes a few more places to use scoped_fd. This allows the removal of some cleanups. Regression tested by the buildbot, though note that I'm not sure whether the buildbot actually builds anything using all of these files. gdb/ChangeLog 2018-03-08 Tom Tromey <tom@tromey.com> * source.c (get_filename_and_charpos): Use scoped_fd. * nto-procfs.c (procfs_open_1): Use scoped_fd. (procfs_pidlist): Likewise. * procfs.c (proc_get_LDT_entry): Use scoped_fd. (iterate_over_mappings): Likewise.
Diffstat (limited to 'gdb/source.c')
-rw-r--r--gdb/source.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/gdb/source.c b/gdb/source.c
index 3b4920f..5e50f42 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -42,6 +42,7 @@
#include "ui-out.h"
#include "readline/readline.h"
#include "common/enum-flags.h"
+#include "common/scoped_fd.h"
#include <algorithm>
#include "common/pathstuff.h"
@@ -1215,24 +1216,21 @@ find_source_lines (struct symtab *s, int desc)
static int
get_filename_and_charpos (struct symtab *s, char **fullname)
{
- int desc, linenums_changed = 0;
- struct cleanup *cleanups;
+ int linenums_changed = 0;
- desc = open_source_file (s);
- if (desc < 0)
+ scoped_fd desc (open_source_file (s));
+ if (desc.get () < 0)
{
if (fullname)
*fullname = NULL;
return 0;
}
- cleanups = make_cleanup_close (desc);
if (fullname)
*fullname = s->fullname;
if (s->line_charpos == 0)
linenums_changed = 1;
if (linenums_changed)
- find_source_lines (s, desc);
- do_cleanups (cleanups);
+ find_source_lines (s, desc.get ());
return linenums_changed;
}