aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/d-lang.c8
2 files changed, 9 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 72e614a..4d94b97 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2010-08-11 Brad Roberts <braddr@puremagic.com>
+
+ * d-lang.c (extract_identifiers): Handle multiple digits.
+
2010-08-11 Jan Kratochvil <jan.kratochvil@redhat.com>
Code cleanup.
diff --git a/gdb/d-lang.c b/gdb/d-lang.c
index 6db521b..8ef47c7 100644
--- a/gdb/d-lang.c
+++ b/gdb/d-lang.c
@@ -37,9 +37,11 @@ extract_identifiers (const char *mangled_str, struct obstack *tempbuf)
while (isdigit (*mangled_str))
{
- i = strtol (mangled_str, NULL, 10);
- mangled_str++;
- if (i <= 0 && strlen (mangled_str) < i)
+ char *end_ptr;
+
+ i = strtol (mangled_str, &end_ptr, 10);
+ mangled_str = end_ptr;
+ if (i <= 0 || strlen (mangled_str) < i)
return 0;
obstack_grow (tempbuf, mangled_str, i);
mangled_str += i;