From ca09583623ab77362186a9fd1ae260c38dcab470 Mon Sep 17 00:00:00 2001 From: Gary Benson Date: Wed, 10 Jun 2015 14:28:43 +0100 Subject: 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. --- gdb/common/filestuff.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gdb/common/filestuff.c') 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); +} -- cgit v1.1