[binutils-gdb] Use template functions in windows-nat.c
Tom Tromey
tromey@sourceware.org
Fri Apr 30 16:22:57 GMT 2021
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1053c6389a699550f2c7c1f118ce4d2c1889a73a
commit 1053c6389a699550f2c7c1f118ce4d2c1889a73a
Author: Tom Tromey <tromey@adacore.com>
Date: Fri Apr 30 10:22:23 2021 -0600
Use template functions in windows-nat.c
windows-nat.c defines a number of replacement functions that simply
return zero. This patch removes these in favor of a couple of
template functions.
gdb/ChangeLog
2021-04-30 Tom Tromey <tromey@adacore.com>
* windows-nat.c (bad_GetModuleFileNameEx): Remove define.
(bad_DebugActiveProcessStop, bad_DebugBreakProcess)
(bad_DebugSetProcessKillOnExit, bad_EnumProcessModules)
(bad_GetModuleFileNameExW, bad_GetModuleFileNameExA)
(bad_GetModuleInformation, bad_OpenProcessToken): Remove.
(bad): New template functions.
(_initialize_loadable): Update.
Diff:
---
gdb/ChangeLog | 10 +++++++++
gdb/windows-nat.c | 62 +++++++++++++------------------------------------------
2 files changed, 24 insertions(+), 48 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f89346dfb26..673fa3e692d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2021-04-30 Tom Tromey <tromey@adacore.com>
+
+ * windows-nat.c (bad_GetModuleFileNameEx): Remove define.
+ (bad_DebugActiveProcessStop, bad_DebugBreakProcess)
+ (bad_DebugSetProcessKillOnExit, bad_EnumProcessModules)
+ (bad_GetModuleFileNameExW, bad_GetModuleFileNameExA)
+ (bad_GetModuleInformation, bad_OpenProcessToken): Remove.
+ (bad): New template functions.
+ (_initialize_loadable): Update.
+
2021-04-30 Tom Tromey <tromey@adacore.com>
* ada-lang.c (ada_index_type): Use ada_check_typedef.
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index c0f64f87910..37238913a0f 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -160,7 +160,6 @@ static Wow64GetThreadSelectorEntry_ftype *Wow64GetThreadSelectorEntry;
# define STARTUPINFO STARTUPINFOA
# define CreateProcess CreateProcessA
# define GetModuleFileNameEx_name "GetModuleFileNameExA"
-# define bad_GetModuleFileNameEx bad_GetModuleFileNameExA
#else
# define __PMAX PATH_MAX
/* The starting and ending address of the cygwin1.dll text segment. */
@@ -174,7 +173,6 @@ static Wow64GetThreadSelectorEntry_ftype *Wow64GetThreadSelectorEntry;
# define STARTUPINFO STARTUPINFOW
# define CreateProcess CreateProcessW
# define GetModuleFileNameEx_name "GetModuleFileNameExW"
-# define bad_GetModuleFileNameEx bad_GetModuleFileNameExW
#endif
static int have_saved_context; /* True if we've saved context from a
@@ -3534,52 +3532,19 @@ _initialize_check_for_gdb_ini ()
/* Define dummy functions which always return error for the rare cases where
these functions could not be found. */
-static BOOL WINAPI
-bad_DebugActiveProcessStop (DWORD w)
-{
- return FALSE;
-}
-static BOOL WINAPI
-bad_DebugBreakProcess (HANDLE w)
-{
- return FALSE;
-}
-static BOOL WINAPI
-bad_DebugSetProcessKillOnExit (BOOL w)
-{
- return FALSE;
-}
-static BOOL WINAPI
-bad_EnumProcessModules (HANDLE w, HMODULE *x, DWORD y, LPDWORD z)
+template<typename... T>
+BOOL WINAPI
+bad (T... args)
{
return FALSE;
}
-#ifdef __USEWIDE
-static DWORD WINAPI
-bad_GetModuleFileNameExW (HANDLE w, HMODULE x, LPWSTR y, DWORD z)
-{
- return 0;
-}
-#else
-static DWORD WINAPI
-bad_GetModuleFileNameExA (HANDLE w, HMODULE x, LPSTR y, DWORD z)
+template<typename... T>
+DWORD WINAPI
+bad (T... args)
{
return 0;
}
-#endif
-
-static BOOL WINAPI
-bad_GetModuleInformation (HANDLE w, HMODULE x, LPMODULEINFO y, DWORD z)
-{
- return FALSE;
-}
-
-static BOOL WINAPI
-bad_OpenProcessToken (HANDLE w, DWORD x, PHANDLE y)
-{
- return FALSE;
-}
static BOOL WINAPI
bad_GetCurrentConsoleFont (HANDLE w, BOOL bMaxWindow, CONSOLE_FONT_INFO *f)
@@ -3587,6 +3552,7 @@ bad_GetCurrentConsoleFont (HANDLE w, BOOL bMaxWindow, CONSOLE_FONT_INFO *f)
f->nFont = 0;
return 1;
}
+
static COORD WINAPI
bad_GetConsoleFontSize (HANDLE w, DWORD nFont)
{
@@ -3628,11 +3594,11 @@ _initialize_loadable ()
/* Set variables to dummy versions of these processes if the function
wasn't found in kernel32.dll. */
if (!DebugBreakProcess)
- DebugBreakProcess = bad_DebugBreakProcess;
+ DebugBreakProcess = bad;
if (!DebugActiveProcessStop || !DebugSetProcessKillOnExit)
{
- DebugActiveProcessStop = bad_DebugActiveProcessStop;
- DebugSetProcessKillOnExit = bad_DebugSetProcessKillOnExit;
+ DebugActiveProcessStop = bad;
+ DebugSetProcessKillOnExit = bad;
}
if (!GetConsoleFontSize)
GetConsoleFontSize = bad_GetConsoleFontSize;
@@ -3657,9 +3623,9 @@ _initialize_loadable ()
{
/* Set variables to dummy versions of these processes if the function
wasn't found in psapi.dll. */
- EnumProcessModules = bad_EnumProcessModules;
- GetModuleInformation = bad_GetModuleInformation;
- GetModuleFileNameEx = bad_GetModuleFileNameEx;
+ EnumProcessModules = bad;
+ GetModuleInformation = bad;
+ GetModuleFileNameEx = bad;
/* This will probably fail on Windows 9x/Me. Let the user know
that we're missing some functionality. */
warning(_("\
@@ -3677,7 +3643,7 @@ Use \"file\" or \"dll\" command to load executable/libraries directly."));
else is needed. */
if (!OpenProcessToken || !LookupPrivilegeValueA
|| !AdjustTokenPrivileges)
- OpenProcessToken = bad_OpenProcessToken;
+ OpenProcessToken = bad;
}
#undef GPA
More information about the Gdb-cvs
mailing list