[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Compilation error caused by SPARE_MEMORY
From: |
Paul Eggert |
Subject: |
Re: Compilation error caused by SPARE_MEMORY |
Date: |
Sun, 05 Jun 2011 21:59:20 -0700 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110424 Thunderbird/3.1.10 |
On 06/05/11 14:54, Glenn Morris wrote:
> As reported in http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8800
Thanks, that is a bug I recently introduced; it affects hosts such
as MacOS that define SYSTEM_MALLOC. I fixed it in the trunk with
bzr 104508, as follows:
=== modified file 'src/ChangeLog'
--- src/ChangeLog 2011-06-05 22:46:26 +0000
+++ src/ChangeLog 2011-06-06 04:54:23 +0000
@@ -1,3 +1,11 @@
+2011-06-06 Paul Eggert <address@hidden>
+
+ * alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
+ Do not assume that spare memory exists; that assumption is valid
+ only if SYSTEM_MALLOC.
+ (LARGE_REQUEST): New macro, so that the issue of large requests
+ is separated from the issue of spare memory.
+
2011-06-05 Andreas Schwab <address@hidden>
* editfns.c (Fformat): Correctly handle zero flag with hexadecimal
=== modified file 'src/alloc.c'
--- src/alloc.c 2011-06-02 08:35:28 +0000
+++ src/alloc.c 2011-06-06 04:54:23 +0000
@@ -196,6 +196,12 @@
#define SPARE_MEMORY (1 << 14)
#endif
+#ifdef SYSTEM_MALLOC
+# define LARGE_REQUEST (1 << 14)
+#else
+# define LARGE_REQUEST SPARE_MEMORY
+#endif
+
/* Number of extra blocks malloc should get when it needs more core. */
static int malloc_hysteresis;
@@ -3283,15 +3289,12 @@
{
/* Do not go into hysterics merely because a large request failed. */
int enough_free_memory = 0;
- if (SPARE_MEMORY < nbytes)
+ if (LARGE_REQUEST < nbytes)
{
- void *p = malloc (SPARE_MEMORY);
+ void *p = malloc (LARGE_REQUEST);
if (p)
{
- if (spare_memory[0])
- free (p);
- else
- spare_memory[0] = p;
+ free (p);
enough_free_memory = 1;
}
}