gdbserver: Rephrase loops in regsets_fetch/store_inferior_registers

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.
This commit is contained in:
Andreas Arnez 2014-12-12 14:14:20 +01:00 committed by Andreas Krebbel
parent 6cabe1ea46
commit 28eef6727d
2 changed files with 10 additions and 18 deletions

View 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.

View 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)