diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2017-11-17 13:02:24 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2017-11-17 13:03:34 -0500 |
commit | 37269bc92ca6a79f9e56fe83718f3c86a1db845d (patch) | |
tree | 55f94fb85d943bfb7a24d6483663d2a829e69201 /gdb/common | |
parent | 5c632425957f0150a0d5d1e747f0425f74622132 (diff) | |
download | gdb-37269bc92ca6a79f9e56fe83718f3c86a1db845d.zip gdb-37269bc92ca6a79f9e56fe83718f3c86a1db845d.tar.gz gdb-37269bc92ca6a79f9e56fe83718f3c86a1db845d.tar.bz2 |
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.
Diffstat (limited to 'gdb/common')
-rw-r--r-- | gdb/common/filestuff.c | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/gdb/common/filestuff.c b/gdb/common/filestuff.c index 4b05884..881ee27 100644 --- a/gdb/common/filestuff.c +++ b/gdb/common/filestuff.c @@ -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) { |