https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=f36dd402753eacc1b0774a240c3fb6a33515ed30

commit f36dd402753eacc1b0774a240c3fb6a33515ed30
Author: Jon Turney <[email protected]>
Date:   Fri Apr 30 14:33:21 2021 +0100

    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)

Diff:
---
 winsup/utils/regtool.cc | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/winsup/utils/regtool.cc b/winsup/utils/regtool.cc
index fd2dd0590..e919185ae 100644
--- a/winsup/utils/regtool.cc
+++ b/winsup/utils/regtool.cc
@@ -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)

Reply via email to