diff options
| -rw-r--r-- | src/ChangeLog | 3 | ||||
| -rw-r--r-- | src/alloc.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 432cea6a624..6a353aa1f95 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -14,6 +14,9 @@ | |||
| 14 | These were 'int' variables that could overflow on 64-bit hosts; | 14 | These were 'int' variables that could overflow on 64-bit hosts; |
| 15 | they were never used, so remove them instead of repairing them. | 15 | they were never used, so remove them instead of repairing them. |
| 16 | (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'. | 16 | (nzombies, ngcs, max_live, max_zombies): Now EMACS_INT, not 'int'. |
| 17 | (inhibit_garbage_collection): Set gc_cons_threshold to max value. | ||
| 18 | Previously, this ceilinged at INT_MAX, but that doesn't work on | ||
| 19 | 64-bit machines. | ||
| 17 | 20 | ||
| 18 | * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int. | 21 | * alloc.c (Fmake_bool_vector): Don't assume vector size fits in int. |
| 19 | (allocate_vectorlike): Check for ptrdiff_t overflow. | 22 | (allocate_vectorlike): Check for ptrdiff_t overflow. |
diff --git a/src/alloc.c b/src/alloc.c index dd2e5f4b6ad..e04f60baf03 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -4827,9 +4827,8 @@ int | |||
| 4827 | inhibit_garbage_collection (void) | 4827 | inhibit_garbage_collection (void) |
| 4828 | { | 4828 | { |
| 4829 | int count = SPECPDL_INDEX (); | 4829 | int count = SPECPDL_INDEX (); |
| 4830 | int nbits = min (VALBITS, BITS_PER_INT); | ||
| 4831 | 4830 | ||
| 4832 | specbind (Qgc_cons_threshold, make_number (((EMACS_INT) 1 << (nbits - 1)) - 1)); | 4831 | specbind (Qgc_cons_threshold, make_number (MOST_POSITIVE_FIXNUM)); |
| 4833 | return count; | 4832 | return count; |
| 4834 | } | 4833 | } |
| 4835 | 4834 | ||