diff --git a/src/pdumper.c b/src/pdumper.c
index c888b659dde..c0b36b1ca44 100644
--- a/src/pdumper.c
+++ b/src/pdumper.c
@@ -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);
+ }
}
}
diff --git a/src/w32dwrite.c b/src/w32dwrite.c
index 32e2644af2c..29f9d5f1fed 100644
--- a/src/w32dwrite.c
+++ b/src/w32dwrite.c
@@ -37,7 +37,7 @@ along with GNU Emacs. If not, see . */
#include
#include
-#ifndef MINGW_W64
+#if !defined MINGW_W64 && !defined CYGWIN
# define INITGUID
#endif
#include
@@ -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)
diff --git a/src/w32menu.c b/src/w32menu.c
index c3d147841b6..b5f87ebb42c 100644
--- a/src/w32menu.c
+++ b/src/w32menu.c
@@ -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)