From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1879) id 7D7F6382FAFF; Wed, 7 Dec 2022 16:54:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7D7F6382FAFF DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1670432056; bh=IZjK7QjRhk3wp2Mek6/KQRig55KQsAP0q758PmJSito=; h=From:To:Subject:Date:From; b=h9eYtOcFzd/lQ10kO7wfVe1tWwXnkbW9TwHcknNSO90JH1sp4c2aqGGflawLfuPNd IhmPLZ5+mv8WCOIYDEu90VnjVQFr2KsS6j/GYUAbaDHS8muWJys3tXMhJkVeGed4Ck qf6GdFAkw0B7tG2F/I6DVL41hdwmu4tc7ve72EE8= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Simon Marchi To: gdb-cvs@sourceware.org Subject: [binutils-gdb] gdb: add invalidate_selected_frame function X-Act-Checkin: binutils-gdb X-Git-Author: Simon Marchi X-Git-Refname: refs/heads/master X-Git-Oldrev: b5e7cd5cd3d1f90d0e7e58679a0782816bd5434f X-Git-Newrev: 1de4b5156345d7cba14224ee12c1121ff061b066 Message-Id: <20221207165416.7D7F6382FAFF@sourceware.org> Date: Wed, 7 Dec 2022 16:54:16 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D1de4b5156345= d7cba14224ee12c1121ff061b066 commit 1de4b5156345d7cba14224ee12c1121ff061b066 Author: Simon Marchi Date: Fri Dec 2 13:00:47 2022 -0500 gdb: add invalidate_selected_frame function =20 Instead of using `select_frame (nullptr)` to invalidate the selected frame, introduce a function to do that. There is no change in behavior, but it makes the intent a bit clearer. It also allows adding an assert in select_frame that fi is not nullptr, so it avoids passing nullptr by mistake. =20 Change-Id: I61643f46bc8eca428334513ebdaadab63997bdd0 Reviewed-By: Bruno Larsen Diff: --- gdb/frame.c | 16 ++++++++++++++-- gdb/frame.h | 3 +-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/gdb/frame.c b/gdb/frame.c index b4079ef833e..6a6d968b9a9 100644 --- a/gdb/frame.c +++ b/gdb/frame.c @@ -1836,11 +1836,23 @@ deprecated_safe_get_selected_frame (void) return get_selected_frame (NULL); } =20 -/* Select frame FI (or NULL - to invalidate the selected frame). */ +/* Invalidate the selected frame. */ + +static void +invalidate_selected_frame () +{ + selected_frame =3D nullptr; + selected_frame_level =3D -1; + selected_frame_id =3D null_frame_id; +} + +/* See frame.h. */ =20 void select_frame (frame_info_ptr fi) { + gdb_assert (fi !=3D nullptr); + selected_frame =3D fi; selected_frame_level =3D frame_relative_level (fi); if (selected_frame_level =3D=3D 0) @@ -2012,7 +2024,7 @@ reinit_frame_cache (void) annotate_frames_invalid (); =20 sentinel_frame =3D NULL; /* Invalidate cache */ - select_frame (NULL); + invalidate_selected_frame (); frame_stash_invalidate (); =20 for (frame_info_ptr &iter : frame_info_ptr::frame_list) diff --git a/gdb/frame.h b/gdb/frame.h index 100ab1fe48e..cf8bbc6a52b 100644 --- a/gdb/frame.h +++ b/gdb/frame.h @@ -239,8 +239,7 @@ extern void reinit_frame_cache (void); and then return that thread's previously selected frame. */ extern frame_info_ptr get_selected_frame (const char *message =3D nullptr); =20 -/* Select a specific frame. NULL implies re-select the inner most - frame. */ +/* Select a specific frame. */ extern void select_frame (frame_info_ptr); =20 /* Save the frame ID and frame level of the selected frame in FRAME_ID