diff options
| author | Kenichi Handa | 2012-10-10 23:47:31 +0900 |
|---|---|---|
| committer | Kenichi Handa | 2012-10-10 23:47:31 +0900 |
| commit | 90e847e221850d9300f3ffb77d953f3a4d28bb0a (patch) | |
| tree | 6ac2e43e44f97eb5288fbb944d2b67c11e7d1370 | |
| parent | 4ef4a10d1c513bb3b009c29872d0dc621eb826ce (diff) | |
| parent | 3e98c68e76fe07280e82cd394008fdcbe1ce59fa (diff) | |
| download | emacs-90e847e221850d9300f3ffb77d953f3a4d28bb0a.tar.gz emacs-90e847e221850d9300f3ffb77d953f3a4d28bb0a.zip | |
merge trunk
| -rw-r--r-- | src/ChangeLog | 4 | ||||
| -rw-r--r-- | src/alloc.c | 13 |
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 @@ | |||
| 1 | 2012-10-10 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 2 | |||
| 3 | * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers. | ||
| 4 | |||
| 1 | 2012-10-10 Paul Eggert <eggert@cs.ucla.edu> | 5 | 2012-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 | ||