This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
[binutils-gdb] Small refactor in ada-lang.c:scan_discrim_bound
- From: Simon Marchi <simark at sourceware dot org>
- To: gdb-cvs at sourceware dot org
- Date: 10 Sep 2015 15:49:10 -0000
- Subject: [binutils-gdb] Small refactor in ada-lang.c:scan_discrim_bound
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5da1a4d34e730e0b4e2f034c81d22d5948a6ce67
commit 5da1a4d34e730e0b4e2f034c81d22d5948a6ce67
Author: Simon Marchi <simon.marchi@ericsson.com>
Date: Thu Sep 10 11:48:47 2015 -0400
Small refactor in ada-lang.c:scan_discrim_bound
Factor out common arithmetic operations for clarity.
gdb/ChangeLog:
* ada-lang.c (scan_discrim_bound): Factor out arithmetic
operations.
Diff:
---
gdb/ChangeLog | 5 +++++
gdb/ada-lang.c | 17 +++++++++++------
2 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b72031a..2404edd 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2015-09-10 Simon Marchi <simon.marchi@ericsson.com>
+ * ada-lang.c (scan_discrim_bound): Factor out arithmetic
+ operations.
+
+2015-09-10 Simon Marchi <simon.marchi@ericsson.com>
+
* ada-lang.c (ada_search_struct_field): Constify parameters
and/or variables..
(xget_renaming_scope): Likewise.
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index a514f65..d166d1c 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -11432,24 +11432,29 @@ scan_discrim_bound (const char *str, int k, struct value *dval, LONGEST * px,
{
static char *bound_buffer = NULL;
static size_t bound_buffer_len = 0;
- const char *pend, *bound;
+ const char *pstart, *pend, *bound;
struct value *bound_val;
if (dval == NULL || str == NULL || str[k] == '\0')
return 0;
- pend = strstr (str + k, "__");
+ pstart = str + k;
+ pend = strstr (pstart, "__");
if (pend == NULL)
{
- bound = str + k;
+ bound = pstart;
k += strlen (bound);
}
else
{
- GROW_VECT (bound_buffer, bound_buffer_len, pend - (str + k) + 1);
+ int len = pend - pstart;
+
+ /* Strip __ and beyond. */
+ GROW_VECT (bound_buffer, bound_buffer_len, len + 1);
+ strncpy (bound_buffer, pstart, len);
+ bound_buffer[len] = '\0';
+
bound = bound_buffer;
- strncpy (bound_buffer, str + k, pend - (str + k));
- bound_buffer[pend - (str + k)] = '\0';
k = pend - str;
}