From 3f4178d63f0f7971f5d33c9c2780bd9ceb093779 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Tue, 29 Jan 2008 19:18:18 +0000 Subject: [PATCH] 2008-01-29 Aleksandar Ristovski * 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. --- gdb/ChangeLog | 7 +++++++ gdb/varobj.c | 14 +++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d2904b59ebc..a4daaecb868 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2008-01-29 Aleksandar Ristovski + + * 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. + 2008-01-29 Jim Blandy * MAINTAINERS: Update my info. diff --git a/gdb/varobj.c b/gdb/varobj.c index d078bef5074..36901744904 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)) -- 2.30.2