public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 1/6] Free results of varobj_get_expression
@ 2015-01-29 19:29 Simon Marchi
  2015-01-30  1:56 ` [PATCH 3/6] Set varobj->path_expr in varobj_get_path_expr Simon Marchi
                   ` (5 more replies)
  0 siblings, 6 replies; 22+ messages in thread
From: Simon Marchi @ 2015-01-29 19:29 UTC (permalink / raw)
  To: gdb-patches; +Cc: Simon Marchi

varobj_get_expression returns an allocated string, which must be freed
by the caller.

gdb/ChangeLog:

	* mi-cmd-var.c (print_varobj): Free varobj_get_expression
	result.
	(mi_cmd_var_info_expression): Same.
	* varobj.c (varobj_get_expression): Mention in the comment that
	the result must by freed by the caller.
---
 gdb/mi/mi-cmd-var.c | 13 +++++++++++--
 gdb/varobj.c        |  3 ++-
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/gdb/mi/mi-cmd-var.c b/gdb/mi/mi-cmd-var.c
index d873a17..d9b37f8 100644
--- a/gdb/mi/mi-cmd-var.c
+++ b/gdb/mi/mi-cmd-var.c
@@ -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))
@@ -485,6 +490,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 +501,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
diff --git a/gdb/varobj.c b/gdb/varobj.c
index dad284d..6c9257d 100644
--- a/gdb/varobj.c
+++ b/gdb/varobj.c
@@ -492,7 +492,8 @@ varobj_get_objname (struct varobj *var)
   return var->obj_name;
 }
 
-/* Given the handle, return the expression represented by the object.  */
+/* Given the handle, return the expression represented by the object.  The
+   result must be freed by the caller.  */
 
 char *
 varobj_get_expression (struct varobj *var)
-- 
2.1.4

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2015-02-03 18:07 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-29 19:29 [PATCH 1/6] Free results of varobj_get_expression Simon Marchi
2015-01-30  1:56 ` [PATCH 3/6] Set varobj->path_expr in varobj_get_path_expr Simon Marchi
2015-01-30 18:55   ` Joel Brobecker
2015-01-30 22:58     ` Simon Marchi
2015-01-30  3:13 ` [PATCH 2/6] Mention which return values need to be freed in lang_varobj_ops Simon Marchi
2015-01-30  8:19   ` Joel Brobecker
2015-01-30 20:10     ` Simon Marchi
2015-01-31 20:06       ` Joel Brobecker
2015-02-02 18:18         ` Simon Marchi
2015-01-30  3:28 ` [PATCH 6/6] Fix varobj_delete comment Simon Marchi
2015-01-30 17:04   ` Joel Brobecker
2015-01-31  3:20     ` Simon Marchi
2015-01-30  3:33 ` [PATCH 5/6] Mention that create_child takes ownership of the allocated name Simon Marchi
2015-01-30 16:41   ` Joel Brobecker
2015-01-31  1:14     ` Simon Marchi
2015-01-30  3:35 ` [PATCH 4/6] Constify some parameters in the varobj code Simon Marchi
2015-01-30  9:03   ` Joel Brobecker
2015-01-30 22:59     ` Simon Marchi
2015-02-03 16:55   ` Pedro Alves
2015-02-03 18:07     ` Simon Marchi
2015-01-30  3:40 ` [PATCH 1/6] Free results of varobj_get_expression Joel Brobecker
2015-01-30 22:57   ` Simon Marchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).