aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary Benson <gbenson@redhat.com>2015-06-10 14:28:43 +0100
committerGary Benson <gbenson@redhat.com>2015-06-10 14:28:43 +0100
commitca09583623ab77362186a9fd1ae260c38dcab470 (patch)
tree17f292e5f5d0ff93490f5b5ebbd2da663520d672
parent5d9c55d355c8e5c688caa3fe43c0d95d538daf35 (diff)
downloadgdb-ca09583623ab77362186a9fd1ae260c38dcab470.zip
gdb-ca09583623ab77362186a9fd1ae260c38dcab470.tar.gz
gdb-ca09583623ab77362186a9fd1ae260c38dcab470.tar.bz2
Move make_cleanup_close to common code
This commit moves the function make_cleanup_close from gdb/utils.[ch] to gdb/common/filestuff.[ch] to make it usable from common code. gdb/ChangeLog: * utils.h (make_cleanup_close): Moved to common/filestuff.h. * utils.c (do_close_cleanup): Moved to common/filestuff.c. (make_cleanup_close): Likewise. * common/filestuff.h (make_cleanup_close): Moved from utils.h. * common/filestuff.c (do_close_cleanup): Moved from utils.c. (make_cleanup_close): Likewise.
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/common/filestuff.c21
-rw-r--r--gdb/common/filestuff.h4
-rw-r--r--gdb/utils.c17
-rw-r--r--gdb/utils.h2
5 files changed, 35 insertions, 18 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c9f527c..d6ef5c1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@
+2015-06-10 Gary Benson <gbenson@redhat.com>
+
+ * utils.h (make_cleanup_close): Moved to common/filestuff.h.
+ * utils.c (do_close_cleanup): Moved to common/filestuff.c.
+ (make_cleanup_close): Likewise.
+ * common/filestuff.h (make_cleanup_close): Moved from utils.h.
+ * common/filestuff.c (do_close_cleanup): Moved from utils.c.
+ (make_cleanup_close): Likewise.
+
2015-06-03 Jon Turney <jon.turney@dronecode.org.uk>
* windows-nat.c (thread_rec): Also ignore ERROR_INVALID_HANDLE
diff --git a/gdb/common/filestuff.c b/gdb/common/filestuff.c
index 14d6324..25ea8fa 100644
--- a/gdb/common/filestuff.c
+++ b/gdb/common/filestuff.c
@@ -404,3 +404,24 @@ gdb_pipe_cloexec (int filedes[2])
return result;
}
+
+/* Helper function which does the work for make_cleanup_close. */
+
+static void
+do_close_cleanup (void *arg)
+{
+ int *fd = arg;
+
+ close (*fd);
+}
+
+/* See cleanup-utils.h. */
+
+struct cleanup *
+make_cleanup_close (int fd)
+{
+ int *saved_fd = xmalloc (sizeof (fd));
+
+ *saved_fd = fd;
+ return make_cleanup_dtor (do_close_cleanup, saved_fd, xfree);
+}
diff --git a/gdb/common/filestuff.h b/gdb/common/filestuff.h
index 98522a6..e997ecc 100644
--- a/gdb/common/filestuff.h
+++ b/gdb/common/filestuff.h
@@ -67,4 +67,8 @@ extern int gdb_socket_cloexec (int domain, int style, int protocol);
extern int gdb_pipe_cloexec (int filedes[2]);
+/* Return a new cleanup that closes FD. */
+
+extern struct cleanup *make_cleanup_close (int fd);
+
#endif /* FILESTUFF_H */
diff --git a/gdb/utils.c b/gdb/utils.c
index aaaf9c5..1c1ced4 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -191,23 +191,6 @@ make_cleanup_bfd_unref (bfd *abfd)
return make_cleanup (do_bfd_close_cleanup, abfd);
}
-static void
-do_close_cleanup (void *arg)
-{
- int *fd = arg;
-
- close (*fd);
-}
-
-struct cleanup *
-make_cleanup_close (int fd)
-{
- int *saved_fd = xmalloc (sizeof (fd));
-
- *saved_fd = fd;
- return make_cleanup_dtor (do_close_cleanup, saved_fd, xfree);
-}
-
/* Helper function which does the work for make_cleanup_fclose. */
static void
diff --git a/gdb/utils.h b/gdb/utils.h
index cae1ac0..0e93ead 100644
--- a/gdb/utils.h
+++ b/gdb/utils.h
@@ -80,7 +80,7 @@ struct section_addr_info;
extern struct cleanup *(make_cleanup_free_section_addr_info
(struct section_addr_info *));
-extern struct cleanup *make_cleanup_close (int fd);
+/* For make_cleanup_close see common/filestuff.h. */
extern struct cleanup *make_cleanup_fclose (FILE *file);