aboutsummaryrefslogtreecommitdiff
path: root/gdb/common/filestuff.c
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 /gdb/common/filestuff.c
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.
Diffstat (limited to 'gdb/common/filestuff.c')
-rw-r--r--gdb/common/filestuff.c21
1 files changed, 21 insertions, 0 deletions
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);
+}