[newlib-cygwin] Cygwin: Drop use of loadlib.h in regtool

Jon TURNEY jturney@sourceware.org
Mon Jun 6 10:41:24 GMT 2022


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

commit f36dd402753eacc1b0774a240c3fb6a33515ed30
Author: Jon Turney <jon.turney@dronecode.org.uk>
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)


More information about the Cygwin-cvs mailing list