2008-01-29 Aleksandar Ristovski <aristovski@qnx.com>
authorDaniel Jacobowitz <drow@false.org>
Tue, 29 Jan 2008 19:18:18 +0000 (19:18 +0000)
committerDaniel Jacobowitz <drow@false.org>
Tue, 29 Jan 2008 19:18:18 +0000 (19:18 +0000)
* 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
gdb/varobj.c

index d2904b59ebcbc544b64657a4738f66691fc4c9fb..a4daaecb86887cada777e4615f4a3f0429ae0296 100644 (file)
@@ -1,3 +1,10 @@
+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.
+
 2008-01-29  Jim Blandy  <jimb@red-bean.com>
 
        * MAINTAINERS: Update my info.
index d078bef5074e3a0c59a7bad0d22cd30e872afe95..369017449049aa5c3b4213a48c101777c89fdd7e 100644 (file)
@@ -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))