From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28478 invoked by alias); 9 May 2013 18:52:50 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 28452 invoked by uid 89); 9 May 2013 18:52:50 -0000 X-Spam-SWARE-Status: No, score=-7.6 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Thu, 09 May 2013 18:52:48 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r49IqlSi031656 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 9 May 2013 14:52:47 -0400 Received: from barimba (ovpn-113-133.phx2.redhat.com [10.3.113.133]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id r49IqidN011295 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Thu, 9 May 2013 14:52:45 -0400 From: Tom Tromey From: Tom Tromey To: gdb-patches@sourceware.org Subject: [PATCH 34/40] fix cli-script.c In-Reply-To: References: Message-Id: Date: Thu, 09 May 2013 18:52:00 -0000 MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2013-05/txt/msg00348.txt.bz2 read_command_lines_1 had some (IMNSHO) spaghetti-ish code for cleanup handling. This makes the code much simpler to understand, by introducing an outer cleanup. This is another case where a stylistic change for the checker is also nice for the reader. * cli/cli-script.c (read_command_lines_1): Use a null cleanup for 'old_chain'. Do not check 'head' before processing cleanups. --- gdb/cli/cli-script.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c index 43fd479..d35f42f 100644 --- a/gdb/cli/cli-script.c +++ b/gdb/cli/cli-script.c @@ -1246,13 +1246,12 @@ read_command_lines_1 (char * (*read_next_line_func) (void), int parse_commands, void (*validator)(char *, void *), void *closure) { struct command_line *head, *tail, *next; - struct cleanup *old_chain; + struct cleanup *old_chain = make_cleanup (null_cleanup, NULL); enum command_control_type ret; enum misc_command_type val; control_level = 0; head = tail = NULL; - old_chain = NULL; while (1) { @@ -1298,22 +1297,17 @@ read_command_lines_1 (char * (*read_next_line_func) (void), int parse_commands, else { head = next; - old_chain = make_cleanup_free_command_lines (&head); + make_cleanup_free_command_lines (&head); } tail = next; } dont_repeat (); - if (head) - { - if (ret != invalid_control) - { - discard_cleanups (old_chain); - } - else - do_cleanups (old_chain); - } + if (ret != invalid_control) + discard_cleanups (old_chain); + else + do_cleanups (old_chain); return head; } -- 1.8.1.4