2001-05-10 Andrew Cagney <ac131313@redhat.com>

* ui-out.h (make_cleanup_ui_out_begin_end): Declare.
	* ui-out.c (struct ui_out_end_cleanup_data): Define.
	(do_cleanup_end): New function.  Replace do_list_end.
	(make_cleanup_ui_out_end): New function.
	(make_cleanup_ui_out_begin_end): New function.
	(make_cleanup_ui_out_list_end): Use make_cleanup_ui_out_end.
This commit is contained in:
Andrew Cagney 2001-05-10 21:30:37 +00:00
parent 5dbc5e5f25
commit 127431f9a7
3 changed files with 45 additions and 4 deletions

View File

@ -1,3 +1,12 @@
2001-05-10 Andrew Cagney <ac131313@redhat.com>
* ui-out.h (make_cleanup_ui_out_begin_end): Declare.
* ui-out.c (struct ui_out_end_cleanup_data): Define.
(do_cleanup_end): New function. Replace do_list_end.
(make_cleanup_ui_out_end): New function.
(make_cleanup_ui_out_begin_end): New function.
(make_cleanup_ui_out_list_end): Use make_cleanup_ui_out_end.
2001-05-10 Elena Zannoni <ezannoni@redhat.com>
* MAINTAINERS: Declare xcoffread.c open to all maintainers,

View File

@ -352,16 +352,44 @@ ui_out_list_end (struct ui_out *uiout)
ui_out_end (uiout, ui_out_type_list);
}
static void
do_list_end (void *uiout)
struct ui_out_end_cleanup_data
{
ui_out_list_end (uiout);
struct ui_out *uiout;
enum ui_out_type type;
};
static void
do_cleanup_end (void *data)
{
struct ui_out_end_cleanup_data *end_cleanup_data = data;
ui_out_end (end_cleanup_data->uiout, end_cleanup_data->type);
xfree (end_cleanup_data);
}
static struct cleanup *
make_cleanup_ui_out_end (struct ui_out *uiout,
enum ui_out_type type)
{
struct ui_out_end_cleanup_data *end_cleanup_data;
end_cleanup_data = XMALLOC (struct ui_out_end_cleanup_data);
end_cleanup_data->uiout = uiout;
end_cleanup_data->type = type;
return make_cleanup (do_cleanup_end, end_cleanup_data);
}
struct cleanup *
make_cleanup_ui_out_begin_end (struct ui_out *uiout,
enum ui_out_type type,
const char *id)
{
ui_out_begin (uiout, type, id);
return make_cleanup_ui_out_end (uiout, type);
}
struct cleanup *
make_cleanup_ui_out_list_end (struct ui_out *uiout)
{
return make_cleanup (do_list_end, uiout);
return make_cleanup_ui_out_end (uiout, ui_out_type_list);
}
void

View File

@ -80,6 +80,10 @@ extern void ui_out_begin (struct ui_out *uiout,
extern void ui_out_end (struct ui_out *uiout, enum ui_out_type type);
extern struct cleanup *ui_out_begin_cleanup_end (struct ui_out *uiout,
enum ui_out_type level_type,
const char *id);
/* A table can be considered a special tupple/list combination with
the implied structure: ``table = { hdr = { header, ... } , body = [ {
field, ... }, ... ] }'' */