gdb: add invalidate_selected_frame function

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.

Change-Id: I61643f46bc8eca428334513ebdaadab63997bdd0
Reviewed-By: Bruno Larsen <blarsen@redhat.com>
This commit is contained in:
Simon Marchi 2022-12-02 13:00:47 -05:00 committed by Simon Marchi
parent b5e7cd5cd3
commit 1de4b51563
2 changed files with 15 additions and 4 deletions

View File

@ -1836,11 +1836,23 @@ deprecated_safe_get_selected_frame (void)
return get_selected_frame (NULL);
}
/* Select frame FI (or NULL - to invalidate the selected frame). */
/* Invalidate the selected frame. */
static void
invalidate_selected_frame ()
{
selected_frame = nullptr;
selected_frame_level = -1;
selected_frame_id = null_frame_id;
}
/* See frame.h. */
void
select_frame (frame_info_ptr fi)
{
gdb_assert (fi != nullptr);
selected_frame = fi;
selected_frame_level = frame_relative_level (fi);
if (selected_frame_level == 0)
@ -2012,7 +2024,7 @@ reinit_frame_cache (void)
annotate_frames_invalid ();
sentinel_frame = NULL; /* Invalidate cache */
select_frame (NULL);
invalidate_selected_frame ();
frame_stash_invalidate ();
for (frame_info_ptr &iter : frame_info_ptr::frame_list)

View File

@ -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 = nullptr);
/* Select a specific frame. NULL implies re-select the inner most
frame. */
/* Select a specific frame. */
extern void select_frame (frame_info_ptr);
/* Save the frame ID and frame level of the selected frame in FRAME_ID