mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-30 00:51:50 -08:00
* alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
This commit is contained in:
parent
9d7f027b56
commit
3e98c68e76
2 changed files with 8 additions and 9 deletions
|
|
@ -1,3 +1,7 @@
|
|||
2012-10-10 Dmitry Antipov <dmantipov@yandex.ru>
|
||||
|
||||
* alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
|
||||
|
||||
2012-10-10 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* commands.h (immediate_quit): Remove duplicate decl.
|
||||
|
|
|
|||
13
src/alloc.c
13
src/alloc.c
|
|
@ -6311,19 +6311,14 @@ gc_sweep (void)
|
|||
|
||||
/* Free all unmarked buffers */
|
||||
{
|
||||
register struct buffer *buffer = all_buffers, *prev = 0, *next;
|
||||
register struct buffer *buffer, **bprev = &all_buffers;
|
||||
|
||||
total_buffers = 0;
|
||||
while (buffer)
|
||||
for (buffer = all_buffers; buffer; buffer = *bprev)
|
||||
if (!VECTOR_MARKED_P (buffer))
|
||||
{
|
||||
if (prev)
|
||||
prev->header.next = buffer->header.next;
|
||||
else
|
||||
all_buffers = buffer->header.next.buffer;
|
||||
next = buffer->header.next.buffer;
|
||||
*bprev = buffer->header.next.buffer;
|
||||
lisp_free (buffer);
|
||||
buffer = next;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -6331,7 +6326,7 @@ gc_sweep (void)
|
|||
/* Do not use buffer_(set|get)_intervals here. */
|
||||
buffer->text->intervals = balance_intervals (buffer->text->intervals);
|
||||
total_buffers++;
|
||||
prev = buffer, buffer = buffer->header.next.buffer;
|
||||
bprev = &buffer->header.next.buffer;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue