RFA: fix PR gdb/2489
Tom Tromey
tromey@redhat.com
Tue Feb 3 19:20:00 GMT 2009
>>>>> "Tom" == Tom Tromey <tromey@redhat.com> writes:
Tom> Anyway, I suspect that you are correct, and we could see a NULL here,
Tom> but I don't know how to make it happen. I will add a check for NULL
Tom> here tomorrow.
I am checking in the appended to address this potential problem.
Built and regtested on x86-64 (compile farm).
thanks,
Tom
2009-02-03 Tom Tromey <tromey@redhat.com>
* completer.c (add_struct_fields): Check type_name against NULL
before use.
diff --git a/gdb/completer.c b/gdb/completer.c
index 5d7225f..298cdd0 100644
--- a/gdb/completer.c
+++ b/gdb/completer.c
@@ -371,6 +371,7 @@ add_struct_fields (struct type *type, int *nextp, char **output,
char *fieldname, int namelen)
{
int i;
+ int computed_type_name = 0;
char *type_name = NULL;
CHECK_TYPEDEF (type);
@@ -392,10 +393,13 @@ add_struct_fields (struct type *type, int *nextp, char **output,
char *name = TYPE_FN_FIELDLIST_NAME (type, i);
if (name && ! strncmp (name, fieldname, namelen))
{
- if (!type_name)
- type_name = type_name_no_tag (type);
+ if (!computed_type_name)
+ {
+ type_name = type_name_no_tag (type);
+ computed_type_name = 1;
+ }
/* Omit constructors from the completion list. */
- if (strcmp (type_name, name))
+ if (type_name && strcmp (type_name, name))
{
output[*nextp] = xstrdup (name);
++*nextp;
More information about the Gdb-patches
mailing list