diff options
author | Daniel Jacobowitz <drow@false.org> | 2008-01-29 19:18:18 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2008-01-29 19:18:18 +0000 |
commit | 3f4178d63f0f7971f5d33c9c2780bd9ceb093779 (patch) | |
tree | d7e1fba1efd3adf12889320db0272d01bcd98367 /gdb/varobj.c | |
parent | 5eeba8d46959d9b80460e653e0d8fc4073b59966 (diff) | |
download | gdb-3f4178d63f0f7971f5d33c9c2780bd9ceb093779.zip gdb-3f4178d63f0f7971f5d33c9c2780bd9ceb093779.tar.gz gdb-3f4178d63f0f7971f5d33c9c2780bd9ceb093779.tar.bz2 |
2008-01-29 Aleksandar Ristovski <aristovski@qnx.com>
* varobj (adjust_value_for_child_access): Added checking for
returned value from gdb_value_ind.
(c_describe_child): Likewise.
(cplus_describe_child): Fixed a typo.
Diffstat (limited to 'gdb/varobj.c')
-rw-r--r-- | gdb/varobj.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gdb/varobj.c b/gdb/varobj.c index d078bef..3690174 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -1920,7 +1920,11 @@ adjust_value_for_child_access (struct value **value, || TYPE_CODE (target_type) == TYPE_CODE_UNION) { if (value && *value) - gdb_value_ind (*value, value); + { + int success = gdb_value_ind (*value, value); + if (!success) + *value = NULL; + } *type = target_type; if (was_ptr) *was_ptr = 1; @@ -2114,7 +2118,11 @@ c_describe_child (struct varobj *parent, int index, *cname = xstrprintf ("*%s", parent->name); if (cvalue && value) - gdb_value_ind (value, cvalue); + { + int success = gdb_value_ind (value, cvalue); + if (!success) + *cvalue = NULL; + } /* Don't use get_target_type because it calls check_typedef and here, we want to show the true @@ -2415,7 +2423,7 @@ cplus_describe_child (struct varobj *parent, int index, adjust_value_for_child_access (&value, &type, &was_ptr); if (TYPE_CODE (type) == TYPE_CODE_STRUCT - || TYPE_CODE (type) == TYPE_CODE_STRUCT) + || TYPE_CODE (type) == TYPE_CODE_UNION) { char *join = was_ptr ? "->" : "."; if (CPLUS_FAKE_CHILD (parent)) |