diff options
author | Andrew Cagney <cagney@redhat.com> | 2000-05-23 14:48:13 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2000-05-23 14:48:13 +0000 |
commit | b3a82342b20766f911ac31ba9df8c2f9852c61fa (patch) | |
tree | 80943442ac86979c3227efa2412ec0627298fc5f /gdb | |
parent | bf413ee17ab0ba49b941d6a53d8856d17df2356f (diff) | |
download | gdb-b3a82342b20766f911ac31ba9df8c2f9852c61fa.tar.gz |
Add make_cleanup_close() function.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/defs.h | 2 | ||||
-rw-r--r-- | gdb/utils.c | 13 |
3 files changed, 20 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d18c7537c31..3fd02bdbec8 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 d2810dc4a7a..b11edd14ef7 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 8e2c5c550f8..6f5264a8d11 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); |