1 To: vim_dev@googlegroups.com
4 From: Bram Moolenaar <Bram@moolenaar.net>
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
11 Problem: Size of memory does not fit in 32 bit unsigned.
12 Solution: Use Kbyte instead of byte. Call GlobalMemoryStatusEx() instead of
13 GlobalMemoryStatus() when available.
14 Files: src/misc2.c, src/option.c, src/os_amiga.c, src/os_msdos.c,
15 src/os_win16.c, src/os_win32.c
18 *** ../vim-7.3.576/src/misc2.c 2012-02-29 13:58:43.000000000 +0100
19 --- src/misc2.c 2012-06-29 15:30:54.000000000 +0200
24 # define KEEP_ROOM (2 * 8192L)
26 + #define KEEP_ROOM_KB (KEEP_ROOM / 1024L)
29 * Note: if unsigned is 16 bits we can only allocate up to 64K with alloc().
34 /* 3. check for available memory: call mch_avail_mem() */
35 ! if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing)
37 free((char *)p); /* System is low... no go! */
42 /* 3. check for available memory: call mch_avail_mem() */
43 ! if (mch_avail_mem(TRUE) < KEEP_ROOM_KB && !releasing)
45 free((char *)p); /* System is low... no go! */
47 *** ../vim-7.3.576/src/option.c 2012-03-28 19:58:34.000000000 +0200
48 --- src/option.c 2012-06-29 15:31:46.000000000 +0200
53 /* Use amount of memory available at this moment. */
54 ! n = (mch_avail_mem(FALSE) >> 11);
56 # ifdef HAVE_TOTAL_MEM
57 /* Use amount of memory available to Vim. */
61 /* Use amount of memory available at this moment. */
62 ! n = (mch_avail_mem(FALSE) >> 1);
64 # ifdef HAVE_TOTAL_MEM
65 /* Use amount of memory available to Vim. */
71 ! while(*s == ',' || *s == ' ')
79 ! while (*s == ',' || *s == ' ')
85 new_unnamed |= CLIP_UNNAMED;
88 ! else if (STRNCMP(p, "unnamedplus", 11) == 0
89 && (p[11] == ',' || p[11] == NUL))
91 new_unnamed |= CLIP_UNNAMED_PLUS;
93 new_unnamed |= CLIP_UNNAMED;
96 ! else if (STRNCMP(p, "unnamedplus", 11) == 0
97 && (p[11] == ',' || p[11] == NUL))
99 new_unnamed |= CLIP_UNNAMED_PLUS;
100 *** ../vim-7.3.576/src/os_amiga.c 2011-10-20 18:24:16.000000000 +0200
101 --- src/os_amiga.c 2012-06-29 15:33:59.000000000 +0200
107 ! * Return amount of memory still available.
110 mch_avail_mem(special)
114 ! return (long_u)AvailMem(MEMF_ANY);
116 ! return (long_u)AvailMem(special ? (long)MEMF_CHIP : (long)MEMF_ANY);
124 ! * Return amount of memory still available in Kbyte.
127 mch_avail_mem(special)
131 ! return (long_u)AvailMem(MEMF_ANY) >> 10;
133 ! return (long_u)(AvailMem(special ? (long)MEMF_CHIP : (long)MEMF_ANY)) >> 10;
137 *** ../vim-7.3.576/src/os_msdos.c 2011-06-19 01:14:22.000000000 +0200
138 --- src/os_msdos.c 2012-06-29 15:33:26.000000000 +0200
144 ! * Return amount of memory currently available.
147 mch_avail_mem(int special)
150 ! return _go32_dpmi_remaining_virtual_memory();
160 ! * Return amount of memory currently available in Kbyte.
163 mch_avail_mem(int special)
166 ! return _go32_dpmi_remaining_virtual_memory() >> 10;
168 ! return coreleft() >> 10;
172 *** ../vim-7.3.576/src/os_win16.c 2011-10-20 18:24:16.000000000 +0200
173 --- src/os_win16.c 2012-06-29 15:34:18.000000000 +0200
179 ! * How much memory is available?
185 ! return GetFreeSpace(0);
193 ! * How much memory is available in Kbyte?
199 ! return GetFreeSpace(0) >> 10;
203 *** ../vim-7.3.576/src/os_win32.c 2012-06-29 13:13:59.000000000 +0200
204 --- src/os_win32.c 2012-06-29 15:39:52.000000000 +0200
210 ! * How much memory is available?
211 * Return sum of available physical and page file memory.
215 mch_avail_mem(int special)
219 ! ms.dwLength = sizeof(MEMORYSTATUS);
220 ! GlobalMemoryStatus(&ms);
221 ! return (long_u) (ms.dwAvailPhys + ms.dwAvailPageFile);
229 ! * How much memory is available in Kbyte?
230 * Return sum of available physical and page file memory.
234 mch_avail_mem(int special)
236 ! if (g_PlatformId != VER_PLATFORM_WIN32_NT)
240 ! ms.dwLength = sizeof(MEMORYSTATUS);
241 ! GlobalMemoryStatus(&ms);
242 ! return (long_u)((ms.dwAvailPhys + ms.dwAvailPageFile) >> 10);
248 ! ms.dwLength = sizeof(MEMORYSTATUSEX);
249 ! GlobalMemoryStatusEx(&ms);
250 ! return (long_u)((ms.ullAvailPhys + ms.ullAvailPageFile) >> 10);
255 *** ../vim-7.3.576/src/version.c 2012-06-29 15:04:34.000000000 +0200
256 --- src/version.c 2012-06-29 15:45:44.000000000 +0200
260 { /* Add new patch number below this line */
266 hundred-and-one symptoms of being an internet addict:
267 75. You start wondering whether you could actually upgrade your brain
268 with a Pentium Pro microprocessor 80. The upgrade works just fine.
270 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
271 /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
272 \\\ an exciting new programming language -- http://www.Zimbu.org ///
273 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///