aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/mi/mi-cmd-var.c39
2 files changed, 25 insertions, 23 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ed7c6d5..6889538 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@
+2009-07-10 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ Tidy up the code.
+ * mi/mi-cmd-var.c (mi_cmd_var_update): Remove variable nv. Move
+ variables var, rootlist and cr to their local sub-block. Move the
+ make_cleanup_ui_out_tuple_begin_end, make_cleanup_ui_out_list_begin_end
+ and do_cleanups calls to the common base block. Remove the zero NV
+ check.
+
2009-07-10 Phil Muldoon <pmuldoon@redhat.com>
* python/python-internal.h (apply_varobj_pretty_printer): Update
diff --git a/gdb/mi/mi-cmd-var.c b/gdb/mi/mi-cmd-var.c
index a7fea36..55ccdbd 100644
--- a/gdb/mi/mi-cmd-var.c
+++ b/gdb/mi/mi-cmd-var.c
@@ -569,12 +569,8 @@ mi_cmd_var_assign (char *command, char **argv, int argc)
void
mi_cmd_var_update (char *command, char **argv, int argc)
{
- struct varobj *var;
- struct varobj **rootlist;
- struct varobj **cr;
struct cleanup *cleanup;
char *name;
- int nv;
enum print_values print_values;
if (argc != 1 && argc != 2)
@@ -590,54 +586,51 @@ mi_cmd_var_update (char *command, char **argv, int argc)
else
print_values = PRINT_NO_VALUES;
+ if (mi_version (uiout) <= 1)
+ cleanup = make_cleanup_ui_out_tuple_begin_end (uiout, "changelist");
+ else
+ cleanup = make_cleanup_ui_out_list_begin_end (uiout, "changelist");
+
/* Check if the parameter is a "*" which means that we want
to update all variables */
if ((*name == '*' || *name == '@') && (*(name + 1) == '\0'))
{
- nv = varobj_list (&rootlist);
- cleanup = make_cleanup (xfree, rootlist);
- if (mi_version (uiout) <= 1)
- make_cleanup_ui_out_tuple_begin_end (uiout, "changelist");
- else
- make_cleanup_ui_out_list_begin_end (uiout, "changelist");
- if (nv <= 0)
- {
- do_cleanups (cleanup);
- return;
- }
+ struct varobj **rootlist, **cr;
+
+ varobj_list (&rootlist);
+ make_cleanup (xfree, rootlist);
+
for (cr = rootlist; *cr != NULL; cr++)
{
int thread_id = varobj_get_thread_id (*cr);
int thread_stopped = 0;
+
if (thread_id == -1 && is_stopped (inferior_ptid))
thread_stopped = 1;
else
- {
+ {
struct thread_info *tp = find_thread_id (thread_id);
if (tp)
thread_stopped = is_stopped (tp->ptid);
else
thread_stopped = 1;
}
+
if (thread_stopped)
if (*name == '*' || varobj_floating_p (*cr))
varobj_update_one (*cr, print_values, 0 /* implicit */);
}
- do_cleanups (cleanup);
}
else
{
/* Get varobj handle, if a valid var obj name was specified */
- var = varobj_get_handle (name);
+ struct varobj *var = varobj_get_handle (name);
- if (mi_version (uiout) <= 1)
- cleanup = make_cleanup_ui_out_tuple_begin_end (uiout, "changelist");
- else
- cleanup = make_cleanup_ui_out_list_begin_end (uiout, "changelist");
varobj_update_one (var, print_values, 1 /* explicit */);
- do_cleanups (cleanup);
}
+
+ do_cleanups (cleanup);
}
/* Helper for mi_cmd_var_update(). */