]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/mi/mi-cmd-var.c
GDB copyright headers update after running GDB's copyright.py script.
[thirdparty/binutils-gdb.git] / gdb / mi / mi-cmd-var.c
index d873a177649d8b35f430112b3868615436477113..e95ded795a3644acc12df8cb8c25722b100874da 100644 (file)
@@ -1,5 +1,5 @@
 /* MI Command Set - varobj commands.
-   Copyright (C) 2000-2015 Free Software Foundation, Inc.
+   Copyright (C) 2000-2016 Free Software Foundation, Inc.
 
    Contributed by Cygnus Solutions (a Red Hat company).
 
@@ -35,7 +35,7 @@ extern unsigned int varobjdebug;              /* defined in varobj.c.  */
 
 static void varobj_update_one (struct varobj *var,
                               enum print_values print_values,
-                              int explicit);
+                              int is_explicit);
 
 static int mi_print_value_p (struct varobj *var,
                             enum print_values print_values);
@@ -55,7 +55,12 @@ print_varobj (struct varobj *var, enum print_values print_values,
 
   ui_out_field_string (uiout, "name", varobj_get_objname (var));
   if (print_expression)
-    ui_out_field_string (uiout, "exp", varobj_get_expression (var));
+    {
+      char *exp = varobj_get_expression (var);
+
+      ui_out_field_string (uiout, "exp", exp);
+      xfree (exp);
+    }
   ui_out_field_int (uiout, "numchild", varobj_get_num_children (var));
   
   if (mi_print_value_p (var, print_values))
@@ -228,10 +233,12 @@ mi_parse_format (const char *arg)
        return FORMAT_HEXADECIMAL;
       else if (strncmp (arg, "octal", len) == 0)
        return FORMAT_OCTAL;
+      else if (strncmp (arg, "zero-hexadecimal", len) == 0)
+       return FORMAT_ZHEXADECIMAL;
     }
 
   error (_("Must specify the format as: \"natural\", "
-          "\"binary\", \"decimal\", \"hexadecimal\", or \"octal\""));
+          "\"binary\", \"decimal\", \"hexadecimal\", \"octal\" or \"zero-hexadecimal\""));
 }
 
 void
@@ -485,6 +492,7 @@ mi_cmd_var_info_expression (char *command, char **argv, int argc)
   struct ui_out *uiout = current_uiout;
   const struct language_defn *lang;
   struct varobj *var;
+  char *exp;
 
   if (argc != 1)
     error (_("-var-info-expression: Usage: NAME."));
@@ -495,7 +503,10 @@ mi_cmd_var_info_expression (char *command, char **argv, int argc)
   lang = varobj_get_language (var);
 
   ui_out_field_string (uiout, "lang", lang->la_natural_name);
-  ui_out_field_string (uiout, "exp", varobj_get_expression (var));
+
+  exp = varobj_get_expression (var);
+  ui_out_field_string (uiout, "exp", exp);
+  xfree (exp);
 }
 
 void
@@ -640,7 +651,7 @@ struct mi_cmd_var_update
 static void
 mi_cmd_var_update_iter (struct varobj *var, void *data_pointer)
 {
-  struct mi_cmd_var_update *data = data_pointer;
+  struct mi_cmd_var_update *data = (struct mi_cmd_var_update *) data_pointer;
   int thread_id, thread_stopped;
 
   thread_id = varobj_get_thread_id (var);
@@ -721,14 +732,14 @@ mi_cmd_var_update (char *command, char **argv, int argc)
 
 static void
 varobj_update_one (struct varobj *var, enum print_values print_values,
-                  int explicit)
+                  int is_explicit)
 {
   struct ui_out *uiout = current_uiout;
   VEC (varobj_update_result) *changes;
   varobj_update_result *r;
   int i;
   
-  changes = varobj_update (&var, explicit);
+  changes = varobj_update (&var, is_explicit);
   
   for (i = 0; VEC_iterate (varobj_update_result, changes, i, r); ++i)
     {
@@ -794,14 +805,14 @@ varobj_update_one (struct varobj *var, enum print_values print_values,
       ui_out_field_int (uiout, "has_more",
                        varobj_has_more (r->varobj, to));
 
-      if (r->new)
+      if (r->newobj)
        {
          int j;
          varobj_p child;
          struct cleanup *cleanup;
 
          cleanup = make_cleanup_ui_out_list_begin_end (uiout, "new_children");
-         for (j = 0; VEC_iterate (varobj_p, r->new, j, child); ++j)
+         for (j = 0; VEC_iterate (varobj_p, r->newobj, j, child); ++j)
            {
              struct cleanup *cleanup_child;
 
@@ -812,8 +823,8 @@ varobj_update_one (struct varobj *var, enum print_values print_values,
            }
 
          do_cleanups (cleanup);
-         VEC_free (varobj_p, r->new);
-         r->new = NULL;        /* Paranoia.  */
+         VEC_free (varobj_p, r->newobj);
+         r->newobj = NULL;     /* Paranoia.  */
        }
 
       do_cleanups (cleanup);