Small refactor in ada-lang.c:scan_discrim_bound
authorSimon Marchi <simon.marchi@ericsson.com>
Thu, 10 Sep 2015 15:48:47 +0000 (11:48 -0400)
committerSimon Marchi <simon.marchi@ericsson.com>
Thu, 10 Sep 2015 15:48:47 +0000 (11:48 -0400)
Factor out common arithmetic operations for clarity.

gdb/ChangeLog:

* ada-lang.c (scan_discrim_bound): Factor out arithmetic
operations.

gdb/ChangeLog
gdb/ada-lang.c

index b72031a..2404edd 100644 (file)
@@ -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.
index a514f65..d166d1c 100644 (file)
@@ -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;
     }