From: Gary Benson Date: Wed, 10 Jun 2015 13:28:43 +0000 (+0100) Subject: Move make_cleanup_close to common code X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ca09583623ab77362186a9fd1ae260c38dcab470;p=binutils-gdb.git 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. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c9f527c7270..d6ef5c1c494 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2015-06-10 Gary Benson + + * 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 * windows-nat.c (thread_rec): Also ignore ERROR_INVALID_HANDLE diff --git a/gdb/common/filestuff.c b/gdb/common/filestuff.c index 14d63246ca7..25ea8fa61b4 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 98522a68de9..e997ecc7bcc 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 aaaf9c5d678..1c1ced41b30 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 cae1ac05c4a..0e93ead91f3 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);