Re: [PATCH 14/40] fix two buglets in breakpoint.c

Tom Tromey
2013-05-17T16:19:11Z

Tom> It occurred to me much later that you meant that I could lower
Tom> the make_cleanup_ui_out_list_begin_end to after the initial return.
Tom> I'm sorry for misreading that.
Tom> I'll make the change as you suggest.

Here is the new version of this patch.

Tom

* breakpoint.c (output_thread_groups, parse_cmd_to_aexpr): Call
do_cleanups earlier.
---
gdb/breakpoint.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index f4f9325..2f4d4fc 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -2248,6 +2248,8 @@ parse_cmd_to_aexpr (CORE_ADDR scope, char *cmd)
fpieces, nargs, argvec);
}

+ do_cleanups (old_cleanups);
+
if (ex.reason < 0)
{
/* If we got here, it means the command could not be parsed to a valid
@@ -2256,8 +2258,6 @@ parse_cmd_to_aexpr (CORE_ADDR scope, char *cmd)
return NULL;
}

- do_cleanups (old_cleanups);
-
/* We have a valid agent expression, return it. */
return aexpr;
}
@@ -5805,8 +5805,7 @@ output_thread_groups (struct ui_out *uiout,
VEC(int) *inf_num,
int mi_only)
{
- struct cleanup *back_to = make_cleanup_ui_out_list_begin_end (uiout,
- field_name);
+ struct cleanup *back_to;
int is_mi = ui_out_is_mi_like_p (uiout);
int inf;
int i;
@@ -5816,6 +5815,8 @@ output_thread_groups (struct ui_out *uiout,
if (!is_mi && mi_only)
return;

+ back_to = make_cleanup_ui_out_list_begin_end (uiout, field_name);
+
for (i = 0; VEC_iterate (int, inf_num, i, inf); ++i)
{
if (is_mi)
--
1.8.1.4