[RFA] varobj: call CHECK_TYPEDEF

Keith Seitz
2003-04-24T20:14:26Z

[-- Attachment #1: Type: text/plain, Size: 495 bytes --]

Hi,

Well, I am not really sure what this does, or why it is necessary
(check_typedef has no comment in gdbtypes.c), but it's what type_print
code does.

Occasionally, some (C++?) files can show no child objects because
nfields will be zero. After calling CHECK_TYPEDEF, nfields is suddenly
non-zero.

This was first reported as insight/219.

Keith

ChangeLog
2003-04-24 Keith Seitz <keiths@redhat.com>

* varobj.c (get_type): Call CHECK_TYPEDEF.
(get_type_deref): Likewise.

[-- Attachment #2: varobj-check_typedef.patch --]
[-- Type: text/x-patch, Size: 651 bytes --]

Index: varobj.c
===================================================================
RCS file: /cvs/src/src/gdb/varobj.c,v
retrieving revision 1.38
diff -u -p -r1.38 varobj.c
--- varobj.c 4 Dec 2002 00:05:54 -0000 1.38
+++ varobj.c 24 Apr 2003 20:12:52 -0000
@@ -1394,6 +1394,7 @@ get_type (struct varobj *var)
while (type != NULL && TYPE_CODE (type) == TYPE_CODE_TYPEDEF)
type = TYPE_TARGET_TYPE (type);

+ CHECK_TYPEDEF (type);
return type;
}

@@ -1409,6 +1410,7 @@ get_type_deref (struct varobj *var)
|| TYPE_CODE (type) == TYPE_CODE_REF))
type = get_target_type (type);

+ CHECK_TYPEDEF (type);
return type;
}