From patchwork Tue Dec 9 13:59:21 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Arnez X-Patchwork-Id: 4124 Received: (qmail 7303 invoked by alias); 9 Dec 2014 13:59:33 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 7200 invoked by uid 89); 9 Dec 2014 13:59:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL, BAYES_00, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: e06smtp11.uk.ibm.com Received: from e06smtp11.uk.ibm.com (HELO e06smtp11.uk.ibm.com) (195.75.94.107) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Tue, 09 Dec 2014 13:59:30 +0000 Received: from /spool/local by e06smtp11.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 9 Dec 2014 13:59:27 -0000 Received: from d06dlp02.portsmouth.uk.ibm.com (9.149.20.14) by e06smtp11.uk.ibm.com (192.168.101.141) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 9 Dec 2014 13:59:24 -0000 Received: from b06cxnps3074.portsmouth.uk.ibm.com (d06relay09.portsmouth.uk.ibm.com [9.149.109.194]) by d06dlp02.portsmouth.uk.ibm.com (Postfix) with ESMTP id 2FE4E219004D for ; Tue, 9 Dec 2014 13:58:55 +0000 (GMT) Received: from d06av01.portsmouth.uk.ibm.com (d06av01.portsmouth.uk.ibm.com [9.149.37.212]) by b06cxnps3074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id sB9DxORu62324834 for ; Tue, 9 Dec 2014 13:59:24 GMT Received: from d06av01.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av01.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id sB9DxNZR031986 for ; Tue, 9 Dec 2014 06:59:23 -0700 Received: from br87z6lw.boeblingen.de.ibm.com (dyn-9-152-212-196.boeblingen.de.ibm.com [9.152.212.196]) by d06av01.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id sB9DxNPc031966 for ; Tue, 9 Dec 2014 06:59:23 -0700 From: Andreas Arnez To: gdb-patches@sourceware.org Subject: [PATCH v3 1/3] gdbserver: Rephrase loops in regsets_fetch/store_inferior_registers Date: Tue, 9 Dec 2014 14:59:21 +0100 Message-Id: <1418133563-16378-2-git-send-email-arnez@linux.vnet.ibm.com> In-Reply-To: <1418133563-16378-1-git-send-email-arnez@linux.vnet.ibm.com> References: <1418133563-16378-1-git-send-email-arnez@linux.vnet.ibm.com> X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14120913-0005-0000-0000-00000263E07D X-IsSubscribed: yes 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/linux-low.c | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 01f11b7..164b0f6 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -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)