aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2009-02-03 19:20:02 +0000
committerTom Tromey <tromey@redhat.com>2009-02-03 19:20:02 +0000
commitb32d97f3d2c35e217053a0b1cf77e735fc73b7a0 (patch)
tree17c81ccccb0017f15f7f73328e4780e387b9cce7
parent692263b89b92b2a951281900e5328d087944b16a (diff)
downloadfsf-binutils-gdb-b32d97f3d2c35e217053a0b1cf77e735fc73b7a0.zip
fsf-binutils-gdb-b32d97f3d2c35e217053a0b1cf77e735fc73b7a0.tar.gz
fsf-binutils-gdb-b32d97f3d2c35e217053a0b1cf77e735fc73b7a0.tar.bz2
* completer.c (add_struct_fields): Check type_name against NULL
before use.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/completer.c10
2 files changed, 12 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index db38fec..0f57551 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2009-02-03 Tom Tromey <tromey@redhat.com>
+
+ * completer.c (add_struct_fields): Check type_name against NULL
+ before use.
+
2009-02-03 Joel Brobecker <brobecker@adacore.com>
* MAINTAINERS: Update Elena's email address.
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;