patch 8.2.4354: dynamic loading of libsodium not handled properly
Problem: Dynamic loading of libsodium not handled properly.
Solution: Fix has() and :version. Show an error message when loading fails.
Fix memory leaks. (Ken Takata, closes #9754)
diff --git a/src/gui_dwrite.cpp b/src/gui_dwrite.cpp
index 83acdab..62d23e7 100644
--- a/src/gui_dwrite.cpp
+++ b/src/gui_dwrite.cpp
@@ -59,7 +59,7 @@
#endif
#ifdef DYNAMIC_DIRECTX
-extern "C" HINSTANCE vimLoadLib(char *name);
+extern "C" HINSTANCE vimLoadLib(const char *name);
typedef int (WINAPI *PGETUSERDEFAULTLOCALENAME)(LPWSTR, int);
typedef HRESULT (WINAPI *PD2D1CREATEFACTORY)(D2D1_FACTORY_TYPE,
@@ -1212,8 +1212,8 @@
{
#ifdef DYNAMIC_DIRECTX
// Load libraries.
- hD2D1DLL = vimLoadLib(const_cast<char*>("d2d1.dll"));
- hDWriteDLL = vimLoadLib(const_cast<char*>("dwrite.dll"));
+ hD2D1DLL = vimLoadLib("d2d1.dll");
+ hDWriteDLL = vimLoadLib("dwrite.dll");
if (hD2D1DLL == NULL || hDWriteDLL == NULL)
{
DWrite_Final();