updated for version 7.3.577
Problem: Size of memory does not fit in 32 bit unsigned.
Solution: Use Kbyte instead of byte. Call GlobalMemoryStatusEx() instead of
GlobalMemoryStatus() when available.
diff --git a/src/misc2.c b/src/misc2.c
index d62c771..5d60954 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -815,6 +815,7 @@
#else
# define KEEP_ROOM (2 * 8192L)
#endif
+#define KEEP_ROOM_KB (KEEP_ROOM / 1024L)
/*
* Note: if unsigned is 16 bits we can only allocate up to 64K with alloc().
@@ -940,7 +941,7 @@
allocated = 0;
# endif
/* 3. check for available memory: call mch_avail_mem() */
- if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing)
+ if (mch_avail_mem(TRUE) < KEEP_ROOM_KB && !releasing)
{
free((char *)p); /* System is low... no go! */
p = NULL;