This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 14/40] fix two buglets in breakpoint.c
- From: Tom Tromey <tromey at redhat dot com>
- To: Yao Qi <yao at codesourcery dot com>
- Cc: <gdb-patches at sourceware dot org>
- Date: Fri, 17 May 2013 10:19:06 -0600
- Subject: Re: [PATCH 14/40] fix two buglets in breakpoint.c
- References: <cover dot 1368124285 dot git dot tromey at redhat dot com> <9950c2e4c9891c1b716d6c6d32107ddd7e97c5a5 dot 1368124285 dot git dot tromey at redhat dot com> <51905107 dot 5090107 at codesourcery dot com> <874ne6de39 dot fsf at fleche dot redhat dot com>
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