diff --git a/src/os_win32.c b/src/os_win32.c index af1232eaba..6b29cfc331 100644 --- a/src/os_win32.c +++ b/src/os_win32.c @@ -4999,7 +4999,20 @@ mch_breakcheck(void) long_u mch_avail_mem(int special) { - if (g_PlatformId != VER_PLATFORM_WIN32_NT) +#ifdef MEMORYSTATUSEX + PlatformId(); + if (g_PlatformId == VER_PLATFORM_WIN32_NT) + { + MEMORYSTATUSEX ms; + + /* Need to use GlobalMemoryStatusEx() when there is more memory than + * what fits in 32 bits. But it's not always available. */ + ms.dwLength = sizeof(MEMORYSTATUSEX); + GlobalMemoryStatusEx(&ms); + return (long_u)((ms.ullAvailPhys + ms.ullAvailPageFile) >> 10); + } + else +#endif { MEMORYSTATUS ms; @@ -5007,14 +5020,6 @@ mch_avail_mem(int special) GlobalMemoryStatus(&ms); return (long_u)((ms.dwAvailPhys + ms.dwAvailPageFile) >> 10); } - else - { - MEMORYSTATUSEX ms; - - ms.dwLength = sizeof(MEMORYSTATUSEX); - GlobalMemoryStatusEx(&ms); - return (long_u)((ms.ullAvailPhys + ms.ullAvailPageFile) >> 10); - } } #ifdef FEAT_MBYTE diff --git a/src/version.c b/src/version.c index 80d8c75473..064af8b2cc 100644 --- a/src/version.c +++ b/src/version.c @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 605, /**/ 604, /**/