From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from barracuda.ebox.ca (barracuda.ebox.ca [96.127.255.19]) by sourceware.org (Postfix) with ESMTPS id 7A51B383302A for ; Tue, 18 May 2021 20:23:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 7A51B383302A X-ASG-Debug-ID: 1621369414-0c856e6cd5137ba10001-fS2M51 Received: from smtp.ebox.ca (smtp.ebox.ca [96.127.255.82]) by barracuda.ebox.ca with ESMTP id rKF3dQEJmzX8cAFb (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 18 May 2021 16:23:35 -0400 (EDT) X-Barracuda-Envelope-From: simon.marchi@polymtl.ca X-Barracuda-RBL-Trusted-Forwarder: 96.127.255.82 Received: from simark.localdomain (192-222-157-6.qc.cable.ebox.net [192.222.157.6]) by smtp.ebox.ca (Postfix) with ESMTP id D4D2F441D66; Tue, 18 May 2021 16:23:34 -0400 (EDT) From: Simon Marchi X-Barracuda-RBL-IP: 192.222.157.6 X-Barracuda-Effective-Source-IP: 192-222-157-6.qc.cable.ebox.net[192.222.157.6] X-Barracuda-Apparent-Source-IP: 192.222.157.6 To: gdb-patches@sourceware.org Subject: [PATCH 3/8] gdb/python: use return values of add_setshow functions in add_setshow_generic Date: Tue, 18 May 2021 16:23:28 -0400 X-ASG-Orig-Subj: [PATCH 3/8] gdb/python: use return values of add_setshow functions in add_setshow_generic Message-Id: <20210518202334.2659379-4-simon.marchi@polymtl.ca> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518202334.2659379-1-simon.marchi@polymtl.ca> References: <20210518202334.2659379-1-simon.marchi@polymtl.ca> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp.ebox.ca[96.127.255.82] X-Barracuda-Start-Time: 1621369415 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://96.127.255.19:443/cgi-mod/mark.cgi X-Barracuda-BRTS-Status: 1 X-Virus-Scanned: by bsmtpd at ebox.ca X-Barracuda-Scan-Msg-Size: 7556 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=8.0 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.90031 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Spam-Status: No, score=-18.5 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_QUARANTINE, KAM_DMARC_STATUS, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_SOFTFAIL, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2021 20:23:38 -0000 In add_setshow_generic, we create set/show commands using add_setshow_* functions, then look up the commands by name to set the context pointer. It would be simpler and more efficient to use the return values of the add_setshow_* functions, do that. gdb/ChangeLog: * python/py-param.c (add_setshow_generic): Use return values of add_setshow functions. Change-Id: I04d50736e1001ddb732d81e088468876df9c88ff --- gdb/python/py-param.c | 133 +++++++++++++++++++++--------------------- 1 file changed, 66 insertions(+), 67 deletions(-) diff --git a/gdb/python/py-param.c b/gdb/python/py-param.c index 99a57960c059..d0a4850bdc04 100644 --- a/gdb/python/py-param.c +++ b/gdb/python/py-param.c @@ -465,113 +465,112 @@ add_setshow_generic (int parmclass, enum command_class cmdclass, struct cmd_list_element **set_list, struct cmd_list_element **show_list) { - struct cmd_list_element *param = NULL; - const char *tmp_name = NULL; + set_show_commands commands; switch (parmclass) { case var_boolean: - - add_setshow_boolean_cmd (cmd_name.get (), cmdclass, - &self->value.boolval, set_doc, show_doc, - help_doc, get_set_value, get_show_value, - set_list, show_list); + commands = add_setshow_boolean_cmd (cmd_name.get (), cmdclass, + &self->value.boolval, set_doc, + show_doc, help_doc, get_set_value, + get_show_value, set_list, show_list); break; case var_auto_boolean: - add_setshow_auto_boolean_cmd (cmd_name.get (), cmdclass, - &self->value.autoboolval, - set_doc, show_doc, help_doc, - get_set_value, get_show_value, - set_list, show_list); + commands = add_setshow_auto_boolean_cmd (cmd_name.get (), cmdclass, + &self->value.autoboolval, + set_doc, show_doc, help_doc, + get_set_value, get_show_value, + set_list, show_list); break; case var_uinteger: - add_setshow_uinteger_cmd (cmd_name.get (), cmdclass, - &self->value.uintval, set_doc, show_doc, - help_doc, get_set_value, get_show_value, - set_list, show_list); + commands = add_setshow_uinteger_cmd (cmd_name.get (), cmdclass, + &self->value.uintval, set_doc, + show_doc, help_doc, get_set_value, + get_show_value, set_list, show_list); break; case var_integer: - add_setshow_integer_cmd (cmd_name.get (), cmdclass, - &self->value.intval, set_doc, show_doc, - help_doc, get_set_value, get_show_value, - set_list, show_list); break; + commands = add_setshow_integer_cmd (cmd_name.get (), cmdclass, + &self->value.intval, set_doc, + show_doc, help_doc, get_set_value, + get_show_value, set_list, show_list); + break; case var_string: - add_setshow_string_cmd (cmd_name.get (), cmdclass, - &self->value.stringval, set_doc, show_doc, - help_doc, get_set_value, get_show_value, - set_list, show_list); break; + commands = add_setshow_string_cmd (cmd_name.get (), cmdclass, + &self->value.stringval, set_doc, + show_doc, help_doc, get_set_value, + get_show_value, set_list, show_list); + break; case var_string_noescape: - add_setshow_string_noescape_cmd (cmd_name.get (), cmdclass, - &self->value.stringval, - set_doc, show_doc, help_doc, - get_set_value, get_show_value, - set_list, show_list); - + commands = add_setshow_string_noescape_cmd (cmd_name.get (), cmdclass, + &self->value.stringval, + set_doc, show_doc, help_doc, + get_set_value, get_show_value, + set_list, show_list); break; case var_optional_filename: - add_setshow_optional_filename_cmd (cmd_name.get (), cmdclass, - &self->value.stringval, set_doc, - show_doc, help_doc, get_set_value, - get_show_value, set_list, - show_list); + commands = add_setshow_optional_filename_cmd (cmd_name.get (), cmdclass, + &self->value.stringval, + set_doc, show_doc, help_doc, + get_set_value, + get_show_value, set_list, + show_list); break; case var_filename: - add_setshow_filename_cmd (cmd_name.get (), cmdclass, - &self->value.stringval, set_doc, show_doc, - help_doc, get_set_value, get_show_value, - set_list, show_list); break; + commands = add_setshow_filename_cmd (cmd_name.get (), cmdclass, + &self->value.stringval, set_doc, + show_doc, help_doc, get_set_value, + get_show_value, set_list, show_list); + break; case var_zinteger: - add_setshow_zinteger_cmd (cmd_name.get (), cmdclass, - &self->value.intval, set_doc, show_doc, - help_doc, get_set_value, get_show_value, - set_list, show_list); + commands = add_setshow_zinteger_cmd (cmd_name.get (), cmdclass, + &self->value.intval, set_doc, + show_doc, help_doc, get_set_value, + get_show_value, set_list, show_list); break; case var_zuinteger: - add_setshow_zuinteger_cmd (cmd_name.get (), cmdclass, - &self->value.uintval, set_doc, show_doc, - help_doc, get_set_value, get_show_value, - set_list, show_list); + commands = add_setshow_zuinteger_cmd (cmd_name.get (), cmdclass, + &self->value.uintval, set_doc, + show_doc, help_doc, get_set_value, + get_show_value, set_list, + show_list); break; case var_zuinteger_unlimited: - add_setshow_zuinteger_unlimited_cmd (cmd_name.get (), cmdclass, - &self->value.intval, set_doc, - show_doc, help_doc, get_set_value, - get_show_value, - set_list, show_list); + commands = add_setshow_zuinteger_unlimited_cmd (cmd_name.get (), cmdclass, + &self->value.intval, + set_doc, show_doc, + help_doc, get_set_value, + get_show_value, set_list, + show_list); break; case var_enum: - add_setshow_enum_cmd (cmd_name.get (), cmdclass, self->enumeration, - &self->value.cstringval, set_doc, show_doc, - help_doc, get_set_value, get_show_value, - set_list, show_list); + commands = add_setshow_enum_cmd (cmd_name.get (), cmdclass, + self->enumeration, + &self->value.cstringval, set_doc, + show_doc, help_doc, get_set_value, + get_show_value, set_list, show_list); /* Initialize the value, just in case. */ self->value.cstringval = self->enumeration[0]; break; + + default: + gdb_assert_not_reached ("Unhandled parameter class."); } - /* Lookup created parameter, and register Python object against the - parameter context. Perform this task against both lists. */ - tmp_name = cmd_name.get (); - param = lookup_cmd (&tmp_name, *show_list, "", NULL, 0, 1); - if (param) - set_cmd_context (param, self); - - tmp_name = cmd_name.get (); - param = lookup_cmd (&tmp_name, *set_list, "", NULL, 0, 1); - if (param) - set_cmd_context (param, self); + /* Register Python objects in both commands' context. */ + set_cmd_context (commands.set, self); + set_cmd_context (commands.show, self); /* We (unfortunately) currently leak the command name. */ cmd_name.release (); -- 2.31.1