GNU bug report logs -
#8800
24.0.50: At revno: 104484 alloc.c does not compile
Previous Next
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):
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.