From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 43216 invoked by alias); 30 Nov 2016 12:29:01 -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 43162 invoked by uid 89); 30 Nov 2016 12:29:01 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-4.8 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=columns X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 30 Nov 2016 12:28:59 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D6F1F31B315; Wed, 30 Nov 2016 12:28:58 +0000 (UTC) Received: from [127.0.0.1] (ovpn03.gateway.prod.ext.phx2.redhat.com [10.5.9.3]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id uAUCSvQA011862; Wed, 30 Nov 2016 07:28:58 -0500 Subject: Re: [PATCH 20/22] Class-ify ui_out_table To: Simon Marchi , gdb-patches@sourceware.org References: <20161124152428.24725-1-simon.marchi@polymtl.ca> <20161124191034.26931-20-simon.marchi@polymtl.ca> From: Pedro Alves Message-ID: Date: Wed, 30 Nov 2016 12:29:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <20161124191034.26931-20-simon.marchi@polymtl.ca> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-SW-Source: 2016-11/txt/msg00978.txt.bz2 On 11/24/2016 07:10 PM, Simon Marchi wrote: > This patch makes a class out of the ui_out_table structure, the > structure responsible for managing the generation of an UI table. > > To simplify the ui_out_table object, I changed it so that it can only be > used for generating a single object. Instead of clearing the header > list when starting a new table, we an ui_out_table when starting a > table and delete it when we're done. Therefore, the checks: > > if (uiout->table->flag) > if (!uiout->table->flag) > > are respectively replaced with > > if (uiout->table != nullptr) > if (uiout->table == nullptr) > > Note: I removed the check at the beginning of ui_out_begin, because > there is an equivalent check at the beginning of verify_field. > > gdb/ChangeLog: > > * ui-out.c (enum ui_out_table_state): Move to class > ui_out_table. > (struct ui_out_table): Change to ... > (class ui_out_table): ... this. > : Remove. > : Rename to ... > : ... this. > : Rename to ... > : ... this. > : Rename to ... > : ... this. > : Rename to ... > : ... this. > : Rename to ... > : ... this. > query_field, current_state, entry_level>: New methods. > (struct ui_out) : Change type to unique_ptr to > ui_out_table. > (append_header_to_list, get_next_header, clear_header_list, > clear_table): Remove. > (ui_out_table_begin): Instantiate ui_out_table object. Update > table check. > (ui_out_table_body): Update table check, replace code with call > to ui_out_table::start_body. > (ui_out_table_end): Update table check, replace manual cleanup > with assignment of uiout->table unique_ptr to nullptr. > (ui_out_table_header): Update table check, replace call to > append_header_to_list with call to append_header method. > (ui_out_begin): Remove one table state check, update another. > Replace code with call to start_row method. > (verify_field): Update table checks. > (ui_out_query_field): Update table check, replace code with call > to query_field method. > (ui_out_new): Remove table initialization code. LGTM. Thanks, Pedro Alves