This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] Make open_fds an std::vector
- From: Simon Marchi <simark at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 17 Nov 2017 18:04:01 -0000
- Subject: [binutils-gdb] Make open_fds an std::vector
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=37269bc92ca6a79f9e56fe83718f3c86a1db845d
commit 37269bc92ca6a79f9e56fe83718f3c86a1db845d
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Fri Nov 17 13:02:24 2017 -0500
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.
Diff:
---
gdb/ChangeLog | 8 ++++++++
gdb/common/filestuff.c | 30 +++++++++++-------------------
2 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 373ae85..46de331 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,13 @@
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.
(print_one_breakpoint_location): Adjust.
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)
{