diff --git a/7.3.577 b/7.3.577 new file mode 100644 index 0000000..2929b22 --- /dev/null +++ b/7.3.577 @@ -0,0 +1,273 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.577 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 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. +Files: src/misc2.c, src/option.c, src/os_amiga.c, src/os_msdos.c, + src/os_win16.c, src/os_win32.c + + +*** ../vim-7.3.576/src/misc2.c 2012-02-29 13:58:43.000000000 +0100 +--- src/misc2.c 2012-06-29 15:30:54.000000000 +0200 +*************** +*** 815,820 **** +--- 815,821 ---- + #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,946 **** + allocated = 0; + # endif + /* 3. check for available memory: call mch_avail_mem() */ +! if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing) + { + free((char *)p); /* System is low... no go! */ + p = NULL; +--- 941,947 ---- + allocated = 0; + # endif + /* 3. check for available memory: call mch_avail_mem() */ +! if (mch_avail_mem(TRUE) < KEEP_ROOM_KB && !releasing) + { + free((char *)p); /* System is low... no go! */ + p = NULL; +*** ../vim-7.3.576/src/option.c 2012-03-28 19:58:34.000000000 +0200 +--- src/option.c 2012-06-29 15:31:46.000000000 +0200 +*************** +*** 3154,3160 **** + { + #ifdef HAVE_AVAIL_MEM + /* Use amount of memory available at this moment. */ +! n = (mch_avail_mem(FALSE) >> 11); + #else + # ifdef HAVE_TOTAL_MEM + /* Use amount of memory available to Vim. */ +--- 3154,3160 ---- + { + #ifdef HAVE_AVAIL_MEM + /* Use amount of memory available at this moment. */ +! n = (mch_avail_mem(FALSE) >> 1); + #else + # ifdef HAVE_TOTAL_MEM + /* Use amount of memory available to Vim. */ +*************** +*** 6702,6708 **** + { + for (s = *varp; *s;) + { +! while(*s == ',' || *s == ' ') + s++; + if (!*s) + break; +--- 6702,6708 ---- + { + for (s = *varp; *s;) + { +! while (*s == ',' || *s == ' ') + s++; + if (!*s) + break; +*************** +*** 7391,7397 **** + new_unnamed |= CLIP_UNNAMED; + p += 7; + } +! else if (STRNCMP(p, "unnamedplus", 11) == 0 + && (p[11] == ',' || p[11] == NUL)) + { + new_unnamed |= CLIP_UNNAMED_PLUS; +--- 7391,7397 ---- + new_unnamed |= CLIP_UNNAMED; + p += 7; + } +! else if (STRNCMP(p, "unnamedplus", 11) == 0 + && (p[11] == ',' || p[11] == NUL)) + { + new_unnamed |= CLIP_UNNAMED_PLUS; +*** ../vim-7.3.576/src/os_amiga.c 2011-10-20 18:24:16.000000000 +0200 +--- src/os_amiga.c 2012-06-29 15:33:59.000000000 +0200 +*************** +*** 191,206 **** + } + + /* +! * Return amount of memory still available. + */ + long_u + mch_avail_mem(special) + int special; + { + #ifdef __amigaos4__ +! return (long_u)AvailMem(MEMF_ANY); + #else +! return (long_u)AvailMem(special ? (long)MEMF_CHIP : (long)MEMF_ANY); + #endif + } + +--- 191,206 ---- + } + + /* +! * Return amount of memory still available in Kbyte. + */ + long_u + mch_avail_mem(special) + int special; + { + #ifdef __amigaos4__ +! return (long_u)AvailMem(MEMF_ANY) >> 10; + #else +! return (long_u)(AvailMem(special ? (long)MEMF_CHIP : (long)MEMF_ANY)) >> 10; + #endif + } + +*** ../vim-7.3.576/src/os_msdos.c 2011-06-19 01:14:22.000000000 +0200 +--- src/os_msdos.c 2012-06-29 15:33:26.000000000 +0200 +*************** +*** 550,564 **** + #endif + + /* +! * Return amount of memory currently available. + */ + long_u + mch_avail_mem(int special) + { + #ifdef DJGPP +! return _go32_dpmi_remaining_virtual_memory(); + #else +! return coreleft(); + #endif + } + +--- 550,564 ---- + #endif + + /* +! * Return amount of memory currently available in Kbyte. + */ + long_u + mch_avail_mem(int special) + { + #ifdef DJGPP +! return _go32_dpmi_remaining_virtual_memory() >> 10; + #else +! return coreleft() >> 10; + #endif + } + +*** ../vim-7.3.576/src/os_win16.c 2011-10-20 18:24:16.000000000 +0200 +--- src/os_win16.c 2012-06-29 15:34:18.000000000 +0200 +*************** +*** 379,391 **** + + + /* +! * How much memory is available? + */ + long_u + mch_avail_mem( + int special) + { +! return GetFreeSpace(0); + } + + +--- 379,391 ---- + + + /* +! * How much memory is available in Kbyte? + */ + long_u + mch_avail_mem( + int special) + { +! return GetFreeSpace(0) >> 10; + } + + +*** ../vim-7.3.576/src/os_win32.c 2012-06-29 13:13:59.000000000 +0200 +--- src/os_win32.c 2012-06-29 15:39:52.000000000 +0200 +*************** +*** 4992,5009 **** + + + /* +! * How much memory is available? + * Return sum of available physical and page file memory. + */ + /*ARGSUSED*/ + long_u + mch_avail_mem(int special) + { +! MEMORYSTATUS ms; + +! ms.dwLength = sizeof(MEMORYSTATUS); +! GlobalMemoryStatus(&ms); +! return (long_u) (ms.dwAvailPhys + ms.dwAvailPageFile); + } + + #ifdef FEAT_MBYTE +--- 4992,5020 ---- + + + /* +! * How much memory is available in Kbyte? + * Return sum of available physical and page file memory. + */ + /*ARGSUSED*/ + long_u + mch_avail_mem(int special) + { +! if (g_PlatformId != VER_PLATFORM_WIN32_NT) +! { +! MEMORYSTATUS ms; + +! ms.dwLength = sizeof(MEMORYSTATUS); +! 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 +*** ../vim-7.3.576/src/version.c 2012-06-29 15:04:34.000000000 +0200 +--- src/version.c 2012-06-29 15:45:44.000000000 +0200 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 577, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +75. You start wondering whether you could actually upgrade your brain + with a Pentium Pro microprocessor 80. The upgrade works just fine. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///