mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 17:18:24 +08:00
Use thread_info_ref in stop_context
This changes stop_context to use a thread_info_ref, removing some manual reference counting. gdb/ChangeLog 2020-12-11 Tom Tromey <tom@tromey.com> * infrun.c (struct stop_context) <thread>: Now a thread_info_ref. (stop_context::stop_context): Update. (stop_context::~stop_context): Remove.
This commit is contained in:
@ -1,3 +1,9 @@
|
||||
2020-12-11 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* infrun.c (struct stop_context) <thread>: Now a thread_info_ref.
|
||||
(stop_context::stop_context): Update.
|
||||
(stop_context::~stop_context): Remove.
|
||||
|
||||
2020-12-11 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* inferior.c (current_inferior_): Change type.
|
||||
|
17
gdb/infrun.c
17
gdb/infrun.c
@ -8097,7 +8097,6 @@ maybe_remove_breakpoints (void)
|
||||
struct stop_context
|
||||
{
|
||||
stop_context ();
|
||||
~stop_context ();
|
||||
|
||||
DISABLE_COPY_AND_ASSIGN (stop_context);
|
||||
|
||||
@ -8112,7 +8111,7 @@ struct stop_context
|
||||
|
||||
/* If stopp for a thread event, this is the thread that caused the
|
||||
stop. */
|
||||
struct thread_info *thread;
|
||||
thread_info_ref thread;
|
||||
|
||||
/* The inferior that caused the stop. */
|
||||
int inf_num;
|
||||
@ -8131,20 +8130,8 @@ stop_context::stop_context ()
|
||||
{
|
||||
/* Take a strong reference so that the thread can't be deleted
|
||||
yet. */
|
||||
thread = inferior_thread ();
|
||||
thread->incref ();
|
||||
thread = thread_info_ref::new_reference (inferior_thread ());
|
||||
}
|
||||
else
|
||||
thread = NULL;
|
||||
}
|
||||
|
||||
/* Release a stop context previously created with save_stop_context.
|
||||
Releases the strong reference to the thread as well. */
|
||||
|
||||
stop_context::~stop_context ()
|
||||
{
|
||||
if (thread != NULL)
|
||||
thread->decref ();
|
||||
}
|
||||
|
||||
/* Return true if the current context no longer matches the saved stop
|
||||
|
Reference in New Issue
Block a user