aboutsummaryrefslogtreecommitdiff
path: root/gdb/common
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2017-11-17 13:02:24 -0500
committerSimon Marchi <simon.marchi@ericsson.com>2017-11-17 13:03:34 -0500
commit37269bc92ca6a79f9e56fe83718f3c86a1db845d (patch)
tree55f94fb85d943bfb7a24d6483663d2a829e69201 /gdb/common
parent5c632425957f0150a0d5d1e747f0425f74622132 (diff)
downloadgdb-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.c30
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)
{