gdbserver: Rephrase loops in regsets_fetch/store_inferior_registers
authorAndreas Arnez <arnez@linux.vnet.ibm.com>
Fri, 12 Dec 2014 13:14:20 +0000 (14:14 +0100)
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Fri, 12 Dec 2014 13:15:06 +0000 (14:15 +0100)
Replace the while-loops in linux-low.c that iterate over regsets by
for-loops.  This makes it clearer what is iterated over.  Also, since
"continue" now moves on to the next iteration without having to
increment the regset pointer first, the code is slightly reduced.

In case of EIO the old code did not increment the regset pointer, but
iterated over the same (now disabled) regset again.  This extra
iteration is now avoided.

gdb/gdbserver/ChangeLog:

* linux-low.c (regsets_fetch_inferior_registers): Rephrase
while-loop as for-loop.
(regsets_store_inferior_registers): Likewise.

gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-low.c

index e378a5f5b861075ced235cc9a03e74b099ba795c..7471dae583d39e0a457aaea74ad63cc83fdf2693 100644 (file)
@@ -1,3 +1,9 @@
+2014-12-12  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+       * linux-low.c (regsets_fetch_inferior_registers): Rephrase
+       while-loop as for-loop.
+       (regsets_store_inferior_registers): Likewise.
+
 2014-11-28  Yao Qi  <yao@codesourcery.com>
 
        * configure.ac(AC_CHECK_FUNCS): Remove readlink.
index 01f11b7dfcaeb2f145c5b6b87c6417ebf394e733..164b0f662400b3ae2ff2cb4a6d08e8245b7c53d2 100644 (file)
@@ -4221,19 +4221,14 @@ regsets_fetch_inferior_registers (struct regsets_info *regsets_info,
   int pid;
   struct iovec iov;
 
-  regset = regsets_info->regsets;
-
   pid = lwpid_of (current_thread);
-  while (regset->size >= 0)
+  for (regset = regsets_info->regsets; regset->size >= 0; regset++)
     {
       void *buf, *data;
       int nt_type, res;
 
       if (regset->size == 0 || regset_disabled (regsets_info, regset))
-       {
-         regset ++;
-         continue;
-       }
+       continue;
 
       buf = xmalloc (regset->size);
 
@@ -4274,7 +4269,6 @@ regsets_fetch_inferior_registers (struct regsets_info *regsets_info,
       else if (regset->type == GENERAL_REGS)
        saw_general_regs = 1;
       regset->store_function (regcache, buf);
-      regset ++;
       free (buf);
     }
   if (saw_general_regs)
@@ -4292,19 +4286,14 @@ regsets_store_inferior_registers (struct regsets_info *regsets_info,
   int pid;
   struct iovec iov;
 
-  regset = regsets_info->regsets;
-
   pid = lwpid_of (current_thread);
-  while (regset->size >= 0)
+  for (regset = regsets_info->regsets; regset->size >= 0; regset++)
     {
       void *buf, *data;
       int nt_type, res;
 
       if (regset->size == 0 || regset_disabled (regsets_info, regset))
-       {
-         regset ++;
-         continue;
-       }
+       continue;
 
       buf = xmalloc (regset->size);
 
@@ -4350,8 +4339,6 @@ regsets_store_inferior_registers (struct regsets_info *regsets_info,
              /* If we get EIO on a regset, do not try it again for
                 this process mode.  */
              disable_regset (regsets_info, regset);
-             free (buf);
-             continue;
            }
          else if (errno == ESRCH)
            {
@@ -4369,7 +4356,6 @@ regsets_store_inferior_registers (struct regsets_info *regsets_info,
        }
       else if (regset->type == GENERAL_REGS)
        saw_general_regs = 1;
-      regset ++;
       free (buf);
     }
   if (saw_general_regs)