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/procfs.c | |
| parent | 862d101ada6b6e8496e545c0bcd801cf8b9a46c1 (diff) | |
| download | binutils-f0b3976bdcd29e308bed185630a24806037a717c.zip binutils-f0b3976bdcd29e308bed185630a24806037a717c.tar.gz binutils-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/procfs.c')
| -rw-r--r-- | gdb/procfs.c | 16 | 
1 files changed, 4 insertions, 12 deletions
| diff --git a/gdb/procfs.c b/gdb/procfs.c index 749b2b4..70619f1 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -1722,20 +1722,13 @@ proc_delete_dead_threads (procinfo *parent, procinfo *thread, void *ignore)    return 0;	/* keep iterating */  } -static void -do_closedir_cleanup (void *dir) -{ -  closedir ((DIR *) dir); -} -  static int  proc_update_threads (procinfo *pi)  {    char pathname[MAX_PROC_NAME_SIZE + 16];    struct dirent *direntry; -  struct cleanup *old_chain = NULL;    procinfo *thread; -  DIR *dirp; +  gdb_dir_up dirp;    int lwpid;    /* We should never have to apply this operation to any procinfo @@ -1756,11 +1749,11 @@ proc_update_threads (procinfo *pi)    strcpy (pathname, pi->pathname);    strcat (pathname, "/lwp"); -  if ((dirp = opendir (pathname)) == NULL) +  dirp.reset (opendir (pathname)); +  if (dirp == NULL)      proc_error (pi, "update_threads, opendir", __LINE__); -  old_chain = make_cleanup (do_closedir_cleanup, dirp); -  while ((direntry = readdir (dirp)) != NULL) +  while ((direntry = readdir (dirp.get ())) != NULL)      if (direntry->d_name[0] != '.')		/* skip '.' and '..' */        {  	lwpid = atoi (&direntry->d_name[0]); @@ -1768,7 +1761,6 @@ proc_update_threads (procinfo *pi)  	  proc_error (pi, "update_threads, create_procinfo", __LINE__);        }    pi->threads_valid = 1; -  do_cleanups (old_chain);    return 1;  } | 
