aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog3
-rw-r--r--gdb/p-typeprint.c16
2 files changed, 11 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 19a767e..a9991ea 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,8 @@
2011-03-10 Michael Snyder <msnyder@vmware.com>
+ * p-typeprint.c (pascal_type_print_method_args): Don't use
+ pointer until after null-check.
+
* tracepoint.c (cmd_qtv): Discard unused value 'packet'.
(cmd_qtframe): Ditto.
(cmd_qtbuffer): Ditto.
diff --git a/gdb/p-typeprint.c b/gdb/p-typeprint.c
index 54a761d..fb3f3a1 100644
--- a/gdb/p-typeprint.c
+++ b/gdb/p-typeprint.c
@@ -156,18 +156,18 @@ void
pascal_type_print_method_args (char *physname, char *methodname,
struct ui_file *stream)
{
- int is_constructor = (strncmp (physname, "__ct__", 6) == 0);
- int is_destructor = (strncmp (physname, "__dt__", 6) == 0);
-
- if (is_constructor || is_destructor)
- {
- physname += 6;
- }
-
fputs_filtered (methodname, stream);
if (physname && (*physname != 0))
{
+ int is_constructor = (strncmp (physname, "__ct__", 6) == 0);
+ int is_destructor = (strncmp (physname, "__dt__", 6) == 0);
+
+ if (is_constructor || is_destructor)
+ {
+ physname += 6;
+ }
+
fputs_filtered (" (", stream);
/* We must demangle this. */
while (isdigit (physname[0]))