aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2012-10-10 23:47:31 +0900
committerKenichi Handa2012-10-10 23:47:31 +0900
commit90e847e221850d9300f3ffb77d953f3a4d28bb0a (patch)
tree6ac2e43e44f97eb5288fbb944d2b67c11e7d1370
parent4ef4a10d1c513bb3b009c29872d0dc621eb826ce (diff)
parent3e98c68e76fe07280e82cd394008fdcbe1ce59fa (diff)
downloademacs-90e847e221850d9300f3ffb77d953f3a4d28bb0a.tar.gz
emacs-90e847e221850d9300f3ffb77d953f3a4d28bb0a.zip
merge trunk
-rw-r--r--src/ChangeLog4
-rw-r--r--src/alloc.c13
2 files changed, 8 insertions, 9 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index dedf10b8e2d..71465cc9b86 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
12012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
2
3 * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
4
12012-10-10 Paul Eggert <eggert@cs.ucla.edu> 52012-10-10 Paul Eggert <eggert@cs.ucla.edu>
2 6
3 * commands.h (immediate_quit): Remove duplicate decl. 7 * commands.h (immediate_quit): Remove duplicate decl.
diff --git a/src/alloc.c b/src/alloc.c
index 3ed8cc2d990..0cbdef84c4a 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -6311,19 +6311,14 @@ gc_sweep (void)
6311 6311
6312 /* Free all unmarked buffers */ 6312 /* Free all unmarked buffers */
6313 { 6313 {
6314 register struct buffer *buffer = all_buffers, *prev = 0, *next; 6314 register struct buffer *buffer, **bprev = &all_buffers;
6315 6315
6316 total_buffers = 0; 6316 total_buffers = 0;
6317 while (buffer) 6317 for (buffer = all_buffers; buffer; buffer = *bprev)
6318 if (!VECTOR_MARKED_P (buffer)) 6318 if (!VECTOR_MARKED_P (buffer))
6319 { 6319 {
6320 if (prev) 6320 *bprev = buffer->header.next.buffer;
6321 prev->header.next = buffer->header.next;
6322 else
6323 all_buffers = buffer->header.next.buffer;
6324 next = buffer->header.next.buffer;
6325 lisp_free (buffer); 6321 lisp_free (buffer);
6326 buffer = next;
6327 } 6322 }
6328 else 6323 else
6329 { 6324 {
@@ -6331,7 +6326,7 @@ gc_sweep (void)
6331 /* Do not use buffer_(set|get)_intervals here. */ 6326 /* Do not use buffer_(set|get)_intervals here. */
6332 buffer->text->intervals = balance_intervals (buffer->text->intervals); 6327 buffer->text->intervals = balance_intervals (buffer->text->intervals);
6333 total_buffers++; 6328 total_buffers++;
6334 prev = buffer, buffer = buffer->header.next.buffer; 6329 bprev = &buffer->header.next.buffer;
6335 } 6330 }
6336 } 6331 }
6337 6332