GNU bug report logs - #8800
24.0.50: At revno: 104484 alloc.c does not compile

Previous Next

Package: emacs;

Reported by: Peter Dyballa <Peter_Dyballa <at> Freenet.DE>

Date: Sat, 4 Jun 2011 10:35:01 UTC

Severity: normal

Found in version 24.0.50

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


Message #11 received at 8800-done <at> debbugs.gnu.org (full text, mbox):

From: Donald Ephraim Curtis <dcurtis <at> gmail.com>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: Glenn Morris <rgm <at> gnu.org>, 8800-done <at> debbugs.gnu.org,
	Emacs Development <Emacs-devel <at> gnu.org>
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  <eggert <at> cs.ucla.edu>
> +
> +	* 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  <schwab <at> linux-m68k.org>
> 
> 	* 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;
> 	}
>     }
> 
> 





This bug report was last modified 14 years and 49 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.