4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-18 15:09:32 +08:00

Cygwin: Drop use of loadlib.h in regtool

Link directly with RegDeleteKeyExW(), available since Vista.

(It's unclear the LoadLibrary wrapper was ever doing anything useful
here, as (i) DLL lookup in PATH was avoided as advapi32 is already
loaded into the process, and (ii) advapi32 is a 'known DLL' which is
only ever loaded from system directory)
This commit is contained in:
Jon Turney 2021-04-30 14:33:21 +01:00
parent f344134a19
commit f36dd40275
No known key found for this signature in database
GPG Key ID: C7C86F0370285C81

View File

@ -16,7 +16,6 @@ details. */
#include <windows.h>
#include <sys/cygwin.h>
#include <cygwin/version.h>
#include "loadlib.h"
#define DEFAULT_KEY_SEPARATOR '\\'
@ -589,10 +588,6 @@ cmd_add ()
return 0;
}
extern "C" {
LONG WINAPI (*regDeleteKeyEx)(HKEY, LPCWSTR, REGSAM, DWORD);
}
int
cmd_remove ()
{
@ -600,13 +595,7 @@ cmd_remove ()
find_key (2, KEY_ALL_ACCESS);
if (wow64)
{
HMODULE mod = LoadLibrary ("advapi32.dll");
if (mod)
regDeleteKeyEx = (LONG WINAPI (*)(HKEY, LPCWSTR, REGSAM, DWORD)) GetProcAddress (mod, "RegDeleteKeyExW");
}
if (regDeleteKeyEx)
rv = (*regDeleteKeyEx) (key, value, wow64, 0);
rv = RegDeleteKeyExW (key, value, wow64, 0);
else
rv = RegDeleteKeyW (key, value);
if (rv != ERROR_SUCCESS)