diff options
author | Gary Benson <gbenson@redhat.com> | 2015-06-10 14:28:43 +0100 |
---|---|---|
committer | Gary Benson <gbenson@redhat.com> | 2015-06-10 14:28:43 +0100 |
commit | ca09583623ab77362186a9fd1ae260c38dcab470 (patch) | |
tree | 17f292e5f5d0ff93490f5b5ebbd2da663520d672 | |
parent | 5d9c55d355c8e5c688caa3fe43c0d95d538daf35 (diff) | |
download | gdb-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/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/common/filestuff.c | 21 | ||||
-rw-r--r-- | gdb/common/filestuff.h | 4 | ||||
-rw-r--r-- | gdb/utils.c | 17 | ||||
-rw-r--r-- | gdb/utils.h | 2 |
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); |