Remove the_windows_nat_target global

Message ID 20221130155207.2444224-1-tromey@adacore.com
State Committed
Commit 5f8363d9248f1864b58d329a2c734527c3713055
Headers
Series Remove the_windows_nat_target global |

Commit Message

Tom Tromey Nov. 30, 2022, 3:52 p.m. UTC
  I belatedly realized that the "the_windows_nat_target" global isn't
really necessary.  It's only used in one place, where 'this' would be
simpler and clearer.  This patch removes the global entirely.
---
 gdb/windows-nat.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)
  

Comments

Simon Marchi Dec. 1, 2022, 6:29 p.m. UTC | #1
On 11/30/22 10:52, Tom Tromey via Gdb-patches wrote:
> I belatedly realized that the "the_windows_nat_target" global isn't
> really necessary.  It's only used in one place, where 'this' would be
> simpler and clearer.  This patch removes the global entirely.

This LGTM:

Approved-By: Simon Marchi <simon.marchi@efficios.com>

Simon
  

Patch

diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index 17422e15f80..900d8c3d3c4 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -387,10 +387,6 @@  struct windows_nat_target final : public x86_nat_target<inf_child_target>
   bool m_is_async = false;
 };
 
-/* This is a pointer and not a global specifically to avoid a C++
-   "static initializer fiasco" situation.  */
-static windows_nat_target *the_windows_nat_target;
-
 static void
 check (BOOL ok, const char *file, int line)
 {
@@ -629,7 +625,7 @@  windows_nat_target::delete_thread (ptid_t ptid, DWORD exit_code,
 		target_pid_to_str (ptid).c_str (),
 		(unsigned) exit_code);
 
-  ::delete_thread (find_thread_ptid (the_windows_nat_target, ptid));
+  ::delete_thread (find_thread_ptid (this, ptid));
 
   auto iter = std::find_if (windows_process.thread_list.begin (),
 			    windows_process.thread_list.end (),
@@ -3126,8 +3122,9 @@  _initialize_windows_nat ()
      calling x86_set_debug_register_length function
      in processor windows specific native file.  */
 
-  the_windows_nat_target = new windows_nat_target;
-  add_inf_child_target (the_windows_nat_target);
+  /* The target is not a global specifically to avoid a C++ "static
+     initializer fiasco" situation.  */
+  add_inf_child_target (new windows_nat_target);
 
 #ifdef __CYGWIN__
   cygwin_internal (CW_SET_DOS_FILE_WARNING, 0);