Make open_fds an std::vector
Simple replacement of VEC with std::vector. gdb/ChangeLog: * common/filestuff.c: Include <algorithm>. (open_fds): Change type to std::vector<int>. (do_mark_open_fd): Adjust. (unmark_fd_no_cloexec): Adjust. (do_close): Adjust.
This commit is contained in:
parent
5c63242595
commit
37269bc92c
|
@ -1,3 +1,11 @@
|
|||
2017-11-17 Simon Marchi <simon.marchi@polymtl.ca>
|
||||
|
||||
* common/filestuff.c: Include <algorithm>.
|
||||
(open_fds): Change type to std::vector<int>.
|
||||
(do_mark_open_fd): Adjust.
|
||||
(unmark_fd_no_cloexec): Adjust.
|
||||
(do_close): Adjust.
|
||||
|
||||
2017-11-17 Simon Marchi <simon.marchi@polymtl.ca>
|
||||
|
||||
* breakpoint.c (output_thread_groups): Take an std::vector.
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <algorithm>
|
||||
|
||||
#ifdef USE_WIN32API
|
||||
#include <winsock2.h>
|
||||
|
@ -146,11 +147,10 @@ fdwalk (int (*func) (void *, int), void *arg)
|
|||
|
||||
|
||||
|
||||
/* A VEC holding all the fds open when notice_open_fds was called. We
|
||||
don't use a hashtab because libiberty isn't linked into gdbserver;
|
||||
and anyway we don't expect there to be many open fds. */
|
||||
/* A vector holding all the fds open when notice_open_fds was called. We
|
||||
don't use a hashtab because we don't expect there to be many open fds. */
|
||||
|
||||
static VEC (int) *open_fds;
|
||||
static std::vector<int> open_fds;
|
||||
|
||||
/* An fdwalk callback function used by notice_open_fds. It puts the
|
||||
given file descriptor into the vec. */
|
||||
|
@ -158,7 +158,7 @@ static VEC (int) *open_fds;
|
|||
static int
|
||||
do_mark_open_fd (void *ignore, int fd)
|
||||
{
|
||||
VEC_safe_push (int, open_fds, fd);
|
||||
open_fds.push_back (fd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -183,18 +183,12 @@ mark_fd_no_cloexec (int fd)
|
|||
void
|
||||
unmark_fd_no_cloexec (int fd)
|
||||
{
|
||||
int i, val;
|
||||
auto it = std::remove (open_fds.begin (), open_fds.end (), fd);
|
||||
|
||||
for (i = 0; VEC_iterate (int, open_fds, i, val); ++i)
|
||||
{
|
||||
if (fd == val)
|
||||
{
|
||||
VEC_unordered_remove (int, open_fds, i);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
gdb_assert_not_reached (_("fd not found in open_fds"));
|
||||
if (it != open_fds.end ())
|
||||
open_fds.erase (it);
|
||||
else
|
||||
gdb_assert_not_reached (_("fd not found in open_fds"));
|
||||
}
|
||||
|
||||
/* Helper function for close_most_fds that closes the file descriptor
|
||||
|
@ -203,9 +197,7 @@ unmark_fd_no_cloexec (int fd)
|
|||
static int
|
||||
do_close (void *ignore, int fd)
|
||||
{
|
||||
int i, val;
|
||||
|
||||
for (i = 0; VEC_iterate (int, open_fds, i, val); ++i)
|
||||
for (int val : open_fds)
|
||||
{
|
||||
if (fd == val)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue