From 6e9ef2a82d0dcbe60b0d877dec44f47da2973efe Mon Sep 17 00:00:00 2001
From: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Fri, 10 Jul 2009 14:18:14 +0000
Subject: [PATCH] gdb/ 	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.

---
 gdb/ChangeLog       |  9 +++++++++
 gdb/mi/mi-cmd-var.c | 39 ++++++++++++++++-----------------------
 2 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ed7c6d5a4b..6889538649 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 a7fea36ef9..55ccdbd40f 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().  */