aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog2
-rw-r--r--gdb/varobj.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ecef0e8..9e9724f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,7 @@
2007-08-08 Michael Snyder <msnyder@access-company.com>
+ * varobj.c (value_of_root): Move alloc after return to avoid leak.
+
* tui/tui-layout.c (tui_set_layout): Dead code, dead variable.
* top.c (command_line_input): Memory leak.
diff --git a/gdb/varobj.c b/gdb/varobj.c
index c19bd20..dbeaff4 100644
--- a/gdb/varobj.c
+++ b/gdb/varobj.c
@@ -1710,13 +1710,14 @@ value_of_root (struct varobj **var_handle, int *type_changed)
{
struct varobj *tmp_var;
char *old_type, *new_type;
- old_type = varobj_get_type (var);
+
tmp_var = varobj_create (NULL, var->name, (CORE_ADDR) 0,
USE_SELECTED_FRAME);
if (tmp_var == NULL)
{
return NULL;
}
+ old_type = varobj_get_type (var);
new_type = varobj_get_type (tmp_var);
if (strcmp (old_type, new_type) == 0)
{