]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix Cygw32 build
authorEli Zaretskii <eliz@gnu.org>
Tue, 12 Nov 2024 12:41:01 +0000 (14:41 +0200)
committerEshel Yaron <me@eshelyaron.com>
Fri, 15 Nov 2024 12:42:03 +0000 (13:42 +0100)
* src/pdumper.c (dump_mm_heap_cb_release): Avoid NULL pointer
dereference.
* src/w32dwrite.c (INITGUID) [CYGWIN]: Don't define for Cygwin.
* src/w32menu.c (w32_popup_dialog): Fix Cygw32 build.  (Bug#74312)

(cherry picked from commit b54fa15ffbb959e97ea0b77bfeb9ae412a63b4e8)

src/pdumper.c
src/w32dwrite.c
src/w32menu.c

index c888b659dde95d582948205a96ee0a2da71dc997..c0b36b1ca44b8312437e7d9899c47e51af652355 100644 (file)
@@ -4853,11 +4853,14 @@ struct dump_memory_map_heap_control_block
 static void
 dump_mm_heap_cb_release (struct dump_memory_map_heap_control_block *cb)
 {
-  eassert (cb->refcount > 0);
-  if (--cb->refcount == 0)
+  if (cb)
     {
-      free (cb->mem);
-      free (cb);
+      eassert (cb->refcount > 0);
+      if (--cb->refcount == 0)
+       {
+         free (cb->mem);
+         free (cb);
+       }
     }
 }
 
index 32e2644af2c3fdb0a90fc9c4a63865aa5a493770..29f9d5f1fed59d647dd1e0d0006a1cc7351bfc83 100644 (file)
@@ -37,7 +37,7 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
 #include <math.h>
 #include <windows.h>
 
-#ifndef MINGW_W64
+#if !defined MINGW_W64 && !defined CYGWIN
 # define INITGUID
 #endif
 #include <initguid.h>
@@ -659,7 +659,7 @@ w32_dwrite_encode_char (struct font *font, int c)
   if (dwrite_font_face == NULL)
     return FONT_INVALID_CODE;
   hr = dwrite_font_face->lpVtbl->GetGlyphIndices (dwrite_font_face,
-                                                 &c, 1, &index);
+                                                 (UINT32 *) &c, 1, &index);
   if (verify_hr (hr, "Failed to GetGlyphIndices"))
     {
       if (index == 0)
index c3d147841b6b50b219bbfaf44dc0534bbfc42fc2..b5f87ebb42c12f189d3eb0cffb4d1860389c7a87 100644 (file)
@@ -186,6 +186,11 @@ task_dialog_callback (HWND hwnd, UINT msg, WPARAM wParam,
 Lisp_Object
 w32_popup_dialog (struct frame *f, Lisp_Object header, Lisp_Object contents)
 {
+#ifdef NTGUI_UNICODE
+  typedef int (WINAPI *WideCharToMultiByte_Proc)(UINT,DWORD,LPCWSTR,int,LPSTR,
+                                                int,LPCSTR,LPBOOL);
+  static MultiByteToWideChar_Proc pMultiByteToWideChar = MultiByteToWideChar;
+#endif /* NTGUI_UNICODE */
   check_window_system (f);
 
   if (task_dialog_indirect)