emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Compilation error caused by SPARE_MEMORY


From: Donald Ephraim Curtis
Subject: Re: Compilation error caused by SPARE_MEMORY
Date: Mon, 6 Jun 2011 07:02:40 -0500

I'm sorry, I've looked at the code currently in alloc.c (revision 104510) and I 
don't see how this is doing anything other than defining LARGE_REQUEST as (1 << 
14)

Here is the relevant code:

/* Amount of spare memory to keep in large reserve block.  */

#define SPARE_MEMORY (1 << 14)

#ifdef SYSTEM_MALLOC
# define LARGE_REQUEST (1 << 14)
#else
# define LARGE_REQUEST SPARE_MEMORY
#endif


But shouldn't there still be a check to see if SPARE_MEMORY is defined already?


On Jun 5, 2011, at 23:59, Paul Eggert wrote:

> 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;
>       }
>     }
> 
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]