aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@vmware.com>2007-08-08 21:46:37 +0000
committerMichael Snyder <msnyder@vmware.com>2007-08-08 21:46:37 +0000
commit6225abfaac49bed9804f8afea2109566b9c18c3d (patch)
tree7a7bd0aff5f81e16ea4884a3526a955044f86388
parent3e40160c049b09b3a5a558f11c63e24c9afc634a (diff)
downloadfsf-binutils-gdb-6225abfaac49bed9804f8afea2109566b9c18c3d.zip
fsf-binutils-gdb-6225abfaac49bed9804f8afea2109566b9c18c3d.tar.gz
fsf-binutils-gdb-6225abfaac49bed9804f8afea2109566b9c18c3d.tar.bz2
2007-08-08 Michael Snyder <msnyder@access-company.com>
* varobj.c (value_of_root): Move alloc after return to avoid leak.
-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)
{