Mercurial > vim
changeset 3691:4873d9c4ad3b v7.3.605
updated for version 7.3.605
Problem: MS-Windows: Can't compile with older compilers. (Titov Anatoly)
Solution: Add #ifdef for MEMORYSTATUSEX.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Thu, 19 Jul 2012 11:37:26 +0200 |
parents | 942df3a8051b |
children | f2438f5f835e |
files | src/os_win32.c src/version.c |
diffstat | 2 files changed, 16 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- 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