diff options
author | Tom Tromey <tom@tromey.com> | 2018-05-03 00:18:20 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-05-04 12:20:37 -0600 |
commit | f0b3976bdcd29e308bed185630a24806037a717c (patch) | |
tree | 9cb329df8ee78f419c7c0e4dec46db0c9d28f69c /gdb/nto-procfs.c | |
parent | 862d101ada6b6e8496e545c0bcd801cf8b9a46c1 (diff) | |
download | gdb-f0b3976bdcd29e308bed185630a24806037a717c.zip gdb-f0b3976bdcd29e308bed185630a24806037a717c.tar.gz gdb-f0b3976bdcd29e308bed185630a24806037a717c.tar.bz2 |
Remove do_closedir_cleanup
This removes both copies of do_closedir_cleanup in favor of a new
unique_ptr specialization.
Tested by the buildbot, though I'm not sure that these code paths are
exercised there.
ChangeLog
2018-05-04 Tom Tromey <tom@tromey.com>
* nto-procfs.c (do_closedir_cleanup): Remove.
(procfs_pidlist): Use gdb_dir_up.
* procfs.c (do_closedir_cleanup): Remove.
(proc_update_threads): Use gdb_dir_up.
* common/filestuff.h (struct gdb_dir_deleter): New.
(gdb_dir_up): New typedef.
Diffstat (limited to 'gdb/nto-procfs.c')
-rw-r--r-- | gdb/nto-procfs.c | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/gdb/nto-procfs.c b/gdb/nto-procfs.c index 51559e6..f0ef9b9 100644 --- a/gdb/nto-procfs.c +++ b/gdb/nto-procfs.c @@ -424,15 +424,8 @@ nto_procfs_target::update_thread_list () } static void -do_closedir_cleanup (void *dir) -{ - closedir (dir); -} - -static void procfs_pidlist (const char *args, int from_tty) { - DIR *dp = NULL; struct dirent *dirp = NULL; char buf[PATH_MAX]; procfs_info *pidinfo = NULL; @@ -441,13 +434,12 @@ procfs_pidlist (const char *args, int from_tty) pid_t num_threads = 0; pid_t pid; char name[512]; - struct cleanup *cleanups; char procfs_dir[PATH_MAX]; snprintf (procfs_dir, sizeof (procfs_dir), "%s%s", (nodestr != NULL) ? nodestr : "", "/proc"); - dp = opendir (procfs_dir); + gdb_dir_up dp (opendir (procfs_dir)); if (dp == NULL) { fprintf_unfiltered (gdb_stderr, "failed to opendir \"%s\" - %d (%s)", @@ -455,22 +447,17 @@ procfs_pidlist (const char *args, int from_tty) return; } - cleanups = make_cleanup (do_closedir_cleanup, dp); - /* Start scan at first pid. */ - rewinddir (dp); + rewinddir (dp.get ()); do { /* Get the right pid and procfs path for the pid. */ do { - dirp = readdir (dp); + dirp = readdir (dp.get ()); if (dirp == NULL) - { - do_cleanups (cleanups); - return; - } + return; snprintf (buf, sizeof (buf), "%s%s/%s/as", (nodestr != NULL) ? nodestr : "", "/proc", dirp->d_name); @@ -521,9 +508,6 @@ procfs_pidlist (const char *args, int from_tty) } } while (dirp != NULL); - - do_cleanups (cleanups); - return; } static void |