aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2000-05-23 14:48:13 +0000
committerAndrew Cagney <cagney@redhat.com>2000-05-23 14:48:13 +0000
commitf5ff8c83c82bcf6d152bf5390a6ca8716dab1de3 (patch)
tree125615c64e173d4680bd334d376661a38c1850f8
parentba09750c1eb83bff64c9ee1b0254de68da3ca1f2 (diff)
downloadgdb-f5ff8c83c82bcf6d152bf5390a6ca8716dab1de3.zip
gdb-f5ff8c83c82bcf6d152bf5390a6ca8716dab1de3.tar.gz
gdb-f5ff8c83c82bcf6d152bf5390a6ca8716dab1de3.tar.bz2
Add make_cleanup_close() function.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/defs.h2
-rw-r--r--gdb/utils.c13
3 files changed, 20 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d18c753..3fd02bd 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+Wed May 24 00:38:09 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * utils.c (make_cleanup_close, do_close_cleanup): New functions.
+ * defs.h (make_cleanup_close): Add declaration.
+
Tue May 23 20:47:50 2000 Andrew Cagney <cagney@b1.cygnus.com>
* configure.in (build_warnings): Add -Wuninitialized.
diff --git a/gdb/defs.h b/gdb/defs.h
index d2810dc..b11edd1 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -332,6 +332,8 @@ extern struct cleanup *make_cleanup_freeargv (char **);
struct ui_file;
extern struct cleanup *make_cleanup_ui_file_delete (struct ui_file *);
+extern struct cleanup *make_cleanup_close (int fd);
+
extern struct cleanup *make_cleanup_bfd_close (bfd *abfd);
extern struct cleanup *make_final_cleanup (make_cleanup_ftype *, void *);
diff --git a/gdb/utils.c b/gdb/utils.c
index 8e2c5c5..6f5264a 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -216,6 +216,19 @@ make_cleanup_bfd_close (bfd *abfd)
}
static void
+do_close_cleanup (void *arg)
+{
+ close ((int) arg);
+}
+
+struct cleanup *
+make_cleanup_close (int fd)
+{
+ /* int into void*. Outch!! */
+ return make_cleanup (do_close_cleanup, (void *) fd);
+}
+
+static void
do_ui_file_delete (void *arg)
{
ui_file_delete (arg);