diff options
Diffstat (limited to 'gdb/common/filestuff.c')
-rw-r--r-- | gdb/common/filestuff.c | 21 |
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); +} |