aboutsummaryrefslogtreecommitdiff
path: root/gdb/infrun.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2020-12-11 09:21:53 -0700
committerTom Tromey <tom@tromey.com>2020-12-11 09:21:54 -0700
commitd634cd0bcef830f2c8b9a544f1f0621fa382e2cc (patch)
tree0ee3b57e6577e4f3f77aa5b595a66494300214bb /gdb/infrun.c
parent51107df53aeb2f6a5a03a1af29eec773b3aca463 (diff)
downloadgdb-d634cd0bcef830f2c8b9a544f1f0621fa382e2cc.zip
gdb-d634cd0bcef830f2c8b9a544f1f0621fa382e2cc.tar.gz
gdb-d634cd0bcef830f2c8b9a544f1f0621fa382e2cc.tar.bz2
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.
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r--gdb/infrun.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c
index e7b69ae..793a7d2 100644
--- a/gdb/infrun.c
+++ b/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