X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fprocfs.c;h=e01d6647e1c37145362ca0a01e1f2e87973c1ed3;hb=222312d359fe0a68f8583ba315583ee8cc94f252;hp=749b2b4833f37c37151b0cd17581295eae8d8c43;hpb=57810aa7e8032c598897454daea14ed17df0f89d;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/procfs.c b/gdb/procfs.c index 749b2b4833..e01d6647e1 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; } @@ -2071,7 +2063,7 @@ procfs_target::fetch_registers (struct regcache *regcache, int regnum) { gdb_gregset_t *gregs; procinfo *pi; - ptid_t ptid = regcache_get_ptid (regcache); + ptid_t ptid = regcache->ptid (); int pid = ptid_get_pid (ptid); int tid = ptid_get_lwp (ptid); struct gdbarch *gdbarch = regcache->arch (); @@ -2120,7 +2112,7 @@ procfs_target::store_registers (struct regcache *regcache, int regnum) { gdb_gregset_t *gregs; procinfo *pi; - ptid_t ptid = regcache_get_ptid (regcache); + ptid_t ptid = regcache->ptid (); int pid = ptid_get_pid (ptid); int tid = ptid_get_lwp (ptid); struct gdbarch *gdbarch = regcache->arch ();