From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 8TN0OsxIqGoruQwAWB0awg (envelope-from ) for ; Mon, 14 Sep 2026 15:19:40 -0400 Received: by simark.ca (Postfix, from userid 112) id E9C2F1E033; Mon, 14 Sep 2026 15:19:40 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 971D31E033 for ; Mon, 14 Sep 2026 15:19:38 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2BDAA4BB24DA for ; Mon, 14 Sep 2026 19:19:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2BDAA4BB24DA Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id 078F94B9DB4B for ; Mon, 14 Sep 2026 19:19:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 078F94B9DB4B Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 078F94B9DB4B Authentication-Results: sourceware.org; arc=none smtp.remote-ip=158.69.221.121 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1789413552; cv=none; b=AHs0yNkGYrh6ZiEObdY9mksXbs0fvwDKindBL4CEPR4I/T7mIUqAPJOIvsRiHSPL4K+q2OSBRNmZfOWyS4IED3Lam5GA6jWCu96cWTRhTQjKAGLgZ33XqHRnpSCpGhV+erDcgG9brcP4JbTPpX3kTwlNJopKwAeKWse/UFYP89Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1789413552; c=relaxed/simple; bh=bW3+98YD79krvf/5IHGMqHmR3BPvucPionl8cS3ZbA0=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=V2xUot4wHv6YhROs6tEfNp3reI2KmCQ9x8I+LF2sjs8bgtApa59CcjHvpqukqhu0ZZ9KCWCHf2y5RE0bklvtEH+Zc5v8tvHS02GPG1hyt6Ayl7xBIuIqn7JfmXlxCcFD1M3MVVowvc0Z+PXJfqM1Kv9/7xEEbC5bH6t5sQ57uFs= ARC-Authentication-Results: i=1; sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 078F94B9DB4B Received: by simark.ca (Postfix) id B45CB1E051; Mon, 14 Sep 2026 15:19:10 -0400 (EDT) From: Simon Marchi To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH 2/4] gdb/python: collapse some nested ifs Date: Mon, 14 Sep 2026 15:19:02 -0400 Message-ID: <20260914191908.557014-2-simon.marchi@efficios.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260914191908.557014-1-simon.marchi@efficios.com> References: <20260914191908.557014-1-simon.marchi@efficios.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org While reviewing another patch in gdb/python, I found that some nested "ifs" could be collapsed into one. I had Claude hunt for more cases like that throughout gdb/python, and this patch changes them. Change-Id: I7cc50a08ec18d85106c2dfebca803a1e354a6582 --- gdb/python/py-breakpoint.c | 31 +++++++++--------------- gdb/python/py-connection.c | 6 ++--- gdb/python/py-framefilter.c | 48 ++++++++++++++++--------------------- gdb/python/py-function.c | 14 ++++------- gdb/python/py-param.c | 10 ++++---- gdb/python/py-prettyprint.c | 18 +++++++------- gdb/python/py-progspace.c | 8 +++---- gdb/python/python.c | 12 ++++------ 8 files changed, 59 insertions(+), 88 deletions(-) diff --git a/gdb/python/py-breakpoint.c b/gdb/python/py-breakpoint.c index 2d8076ad2a73..2db756111d68 100644 --- a/gdb/python/py-breakpoint.c +++ b/gdb/python/py-breakpoint.c @@ -1263,11 +1263,9 @@ gdbpy_breakpoint_created (struct breakpoint *bp) gdbpy_print_stack (); } - if (!evregpy_no_listeners_p (gdb_py_events.breakpoint_created)) - { - if (evpy_emit_event (newbp, gdb_py_events.breakpoint_created) < 0) - gdbpy_print_stack (); - } + if (!evregpy_no_listeners_p (gdb_py_events.breakpoint_created) + && evpy_emit_event (newbp, gdb_py_events.breakpoint_created) < 0) + gdbpy_print_stack (); } /* Callback that is used when a breakpoint is deleted. This will @@ -1291,12 +1289,10 @@ gdbpy_breakpoint_deleted (struct breakpoint *b) if (bp_obj->is_finish_bp) bpfinishpy_pre_delete_hook (bp_obj.get ()); - if (!evregpy_no_listeners_p (gdb_py_events.breakpoint_deleted)) - { - if (evpy_emit_event (bp_obj, - gdb_py_events.breakpoint_deleted) < 0) - gdbpy_print_stack (); - } + if (!evregpy_no_listeners_p (gdb_py_events.breakpoint_deleted) + && evpy_emit_event (bp_obj, + gdb_py_events.breakpoint_deleted) < 0) + gdbpy_print_stack (); bp_obj->bp = NULL; --bppy_live; @@ -1320,15 +1316,10 @@ gdbpy_breakpoint_modified (struct breakpoint *b) gdbpy_enter enter_py (b->gdbarch); PyObject *bp_obj = bp->py_bp_object; - if (bp_obj) - { - if (!evregpy_no_listeners_p (gdb_py_events.breakpoint_modified)) - { - if (evpy_emit_event (bp_obj, - gdb_py_events.breakpoint_modified) < 0) - gdbpy_print_stack (); - } - } + if (bp_obj != nullptr + && !evregpy_no_listeners_p (gdb_py_events.breakpoint_modified) + && evpy_emit_event (bp_obj, gdb_py_events.breakpoint_modified) < 0) + gdbpy_print_stack (); } } diff --git a/gdb/python/py-connection.c b/gdb/python/py-connection.c index e2769871d3d7..8f476d4461d9 100644 --- a/gdb/python/py-connection.c +++ b/gdb/python/py-connection.c @@ -160,9 +160,9 @@ connpy_connection_removed (process_stratum_target *target) gdbpy_enter enter_py; - if (!evregpy_no_listeners_p (gdb_py_events.connection_removed)) - if (emit_connection_event (target, gdb_py_events.connection_removed) < 0) - gdbpy_print_stack (); + if (!evregpy_no_listeners_p (gdb_py_events.connection_removed) + && emit_connection_event (target, gdb_py_events.connection_removed) < 0) + gdbpy_print_stack (); auto conn_obj_iter = all_connection_objects.find (target); if (conn_obj_iter != all_connection_objects.end ()) diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c index 2777b9440974..c3eee22653a1 100644 --- a/gdb/python/py-framefilter.c +++ b/gdb/python/py-framefilter.c @@ -329,11 +329,9 @@ py_print_single_arg (struct ui_out *out, if the value is a frame argument. This is denoted in this function with PRINT_ARGS_FIELD which is flag from the caller to emit the ARGS field. */ - if (out->is_mi_like_p ()) - { - if (print_args_field || args_type != NO_VALUES) - maybe_tuple.emplace (out, nullptr); - } + if (out->is_mi_like_p () + && (print_args_field || args_type != NO_VALUES)) + maybe_tuple.emplace (out, nullptr); annotate_arg_begin (); @@ -585,11 +583,9 @@ enumerate_locals (PyObject *iter, /* With PRINT_NO_VALUES, MI does not emit a tuple normally as each output contains only one field. The exception is -stack-list-variables, which always provides a tuple. */ - if (out->is_mi_like_p ()) - { - if (print_args_field || args_type != NO_VALUES) - tuple.emplace (out, nullptr); - } + if (out->is_mi_like_p () + && (print_args_field || args_type != NO_VALUES)) + tuple.emplace (out, nullptr); /* If the output is not MI we indent locals. */ out->spaces (local_indent); @@ -886,19 +882,17 @@ py_print_frame (PyObject *filter, frame_filter_flags flags, { /* Print address to the address field. If an address is not provided, print nothing. */ - if (opts.addressprint && has_addr) - { - if (!sal.symtab + if (opts.addressprint && has_addr + && (!sal.symtab || frame_show_address (frame, sal) - || print_what == LOC_AND_ADDRESS) - { - annotate_frame_address (); - out->field_core_addr ("addr", gdbarch, address); - if (get_frame_pc_masked (frame)) - out->field_string ("pac", " [PAC]"); - annotate_frame_address_end (); - out->text (" in "); - } + || print_what == LOC_AND_ADDRESS)) + { + annotate_frame_address (); + out->field_core_addr ("addr", gdbarch, address); + if (get_frame_pc_masked (frame)) + out->field_string ("pac", " [PAC]"); + annotate_frame_address_end (); + out->text (" in "); } /* Print frame function name. */ @@ -1034,12 +1028,10 @@ py_print_frame (PyObject *filter, frame_filter_flags flags, out->text ("\n"); } - if (print_locals) - { - if (py_print_locals (filter, out, args_type, indent, - frame) == EXT_LANG_BT_ERROR) - return EXT_LANG_BT_ERROR; - } + if (print_locals + && py_print_locals (filter, out, args_type, indent, + frame) == EXT_LANG_BT_ERROR) + return EXT_LANG_BT_ERROR; if ((flags & PRINT_HIDE) == 0) { diff --git a/gdb/python/py-function.c b/gdb/python/py-function.c index 23e0be0ea432..1e8be6658216 100644 --- a/gdb/python/py-function.c +++ b/gdb/python/py-function.c @@ -113,16 +113,12 @@ fnpy_init (PyObject *self, PyObject *args, PyObject *kwds) if (PyObject_HasAttrString (self, "__doc__")) { gdbpy_ref<> ds_obj (PyObject_GetAttrString (self, "__doc__")); - if (ds_obj != NULL) + if (ds_obj != NULL && gdbpy_is_string (ds_obj.get ())) { - if (gdbpy_is_string (ds_obj.get ())) - { - docstring = python_string_to_host_string (ds_obj.get ()); - if (docstring == NULL) - return -1; - docstring - = gdbpy_fix_doc_string_indentation (std::move (docstring)); - } + docstring = python_string_to_host_string (ds_obj.get ()); + if (docstring == NULL) + return -1; + docstring = gdbpy_fix_doc_string_indentation (std::move (docstring)); } } if (! docstring) diff --git a/gdb/python/py-param.c b/gdb/python/py-param.c index c5f7ff57e1a8..3cc55e49157f 100644 --- a/gdb/python/py-param.c +++ b/gdb/python/py-param.c @@ -376,15 +376,13 @@ set_parameter_value (parmpy_object *self, PyObject *value) } } - if (allowed == TRIBOOL_UNKNOWN) - { - if (val > UINT_MAX || val < INT_MIN + if (allowed == TRIBOOL_UNKNOWN + && (val > UINT_MAX || val < INT_MIN || (var_type == var_uinteger && val < 0) || (var_type == var_integer && val > INT_MAX) || (var_type == var_pinteger && val < 0) - || (var_type == var_pinteger && val > INT_MAX)) - allowed = TRIBOOL_FALSE; - } + || (var_type == var_pinteger && val > INT_MAX))) + allowed = TRIBOOL_FALSE; if (allowed == TRIBOOL_FALSE) { PyErr_SetString (PyExc_RuntimeError, diff --git a/gdb/python/py-prettyprint.c b/gdb/python/py-prettyprint.c index ce6ed699f3e5..c81db67e93ff 100644 --- a/gdb/python/py-prettyprint.c +++ b/gdb/python/py-prettyprint.c @@ -204,17 +204,15 @@ pretty_print_one_value (PyObject *printer, struct value **out_value) { result.reset (PyObject_CallMethodObjArgs (printer, gdbpy_to_string_cst, NULL)); - if (result != NULL) + if (result != NULL + && !gdbpy_is_string (result.get ()) + && !gdbpy_is_lazy_string (result.get ()) + && result != Py_None) { - if (! gdbpy_is_string (result.get ()) - && ! gdbpy_is_lazy_string (result.get ()) - && result != Py_None) - { - *out_value = convert_value_from_python (result.get ()); - if (PyErr_Occurred ()) - *out_value = NULL; - result = NULL; - } + *out_value = convert_value_from_python (result.get ()); + if (PyErr_Occurred ()) + *out_value = NULL; + result = NULL; } } } diff --git a/gdb/python/py-progspace.c b/gdb/python/py-progspace.c index de6bfc653462..b27950c172c4 100644 --- a/gdb/python/py-progspace.c +++ b/gdb/python/py-progspace.c @@ -662,10 +662,10 @@ gdbpy_executable_changed (struct program_space *pspace, bool reload_p) gdbpy_enter enter_py; - if (!evregpy_no_listeners_p (gdb_py_events.executable_changed)) - if (emit_executable_changed_event (gdb_py_events.executable_changed, - pspace, reload_p) < 0) - gdbpy_print_stack (); + if (!evregpy_no_listeners_p (gdb_py_events.executable_changed) + && emit_executable_changed_event (gdb_py_events.executable_changed, + pspace, reload_p) < 0) + gdbpy_print_stack (); } /* Helper function to emit NewProgspaceEvent (when ADDING_P is true) or diff --git a/gdb/python/python.c b/gdb/python/python.c index 01f4aa275ef9..08ee471000cb 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -905,11 +905,8 @@ gdbpy_rbreak (PyObject *self, PyObject *args, PyObject *kw) for (const symbol_search &p : symbols) { /* Minimal symbols included? */ - if (minsyms_p) - { - if (p.msymbol.minsym != NULL) - count++; - } + if (minsyms_p && p.msymbol.minsym != NULL) + count++; if (p.symbol != NULL) count++; @@ -936,9 +933,8 @@ gdbpy_rbreak (PyObject *self, PyObject *args, PyObject *kw) std::string symbol_name; /* Skipping minimal symbols? */ - if (minsyms_p == 0) - if (p.msymbol.minsym != NULL) - continue; + if (minsyms_p == 0 && p.msymbol.minsym != NULL) + continue; if (p.msymbol.minsym == NULL) { -- 2.55.0