Change current_inferior_ to be a inferior_ref
authorTom Tromey <tom@tromey.com>
Fri, 11 Dec 2020 16:21:53 +0000 (09:21 -0700)
committerTom Tromey <tom@tromey.com>
Fri, 11 Dec 2020 16:21:53 +0000 (09:21 -0700)
This changes current_inferior_ to be an inferior_ref, removing some
manual reference counting.

gdb/ChangeLog
2020-12-11  Tom Tromey  <tom@tromey.com>

* inferior.c (current_inferior_): Change type.
(current_inferior, set_current_inferior, initialize_inferiors):
Update.

gdb/ChangeLog
gdb/inferior.c

index 732a1cf0956a2c4692f5ccc4a0440a83c905d1e5..3d97380727ba48bd31f8447585b575c4c33876b9 100644 (file)
@@ -1,3 +1,9 @@
+2020-12-11  Tom Tromey  <tom@tromey.com>
+
+       * inferior.c (current_inferior_): Change type.
+       (current_inferior, set_current_inferior, initialize_inferiors):
+       Update.
+
 2020-12-11  Tom Tromey  <tom@tromey.com>
 
        * gdbthread.h (class enable_thread_stack_temporaries) <m_thr>:
index d4a783b3e6db755f106e6266dcc1449db0a9e1df..a6652b69201df8b972a0d110881b1f83d5210fda 100644 (file)
@@ -51,12 +51,12 @@ bool print_inferior_events = true;
 /* The Current Inferior.  This is a strong reference.  I.e., whenever
    an inferior is the current inferior, its refcount is
    incremented.  */
-static struct inferior *current_inferior_ = NULL;
+static inferior_ref current_inferior_;
 
 struct inferior*
 current_inferior (void)
 {
-  return current_inferior_;
+  return current_inferior_.get ();
 }
 
 void
@@ -65,9 +65,7 @@ set_current_inferior (struct inferior *inf)
   /* There's always an inferior.  */
   gdb_assert (inf != NULL);
 
-  inf->incref ();
-  current_inferior_->decref ();
-  current_inferior_ = inf;
+  current_inferior_ = inferior_ref::new_reference (inf);
 }
 
 private_inferior::~private_inferior () = default;
@@ -962,8 +960,7 @@ initialize_inferiors (void)
      can only allocate an inferior when all those modules have done
      that.  Do this after initialize_progspace, due to the
      current_program_space reference.  */
-  current_inferior_ = add_inferior_silent (0);
-  current_inferior_->incref ();
+  set_current_inferior (add_inferior_silent (0));
   current_inferior_->pspace = current_program_space;
   current_inferior_->aspace = current_program_space->aspace;
   /* The architecture will be initialized shortly, by