emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r110496: * alloc.c (gc_sweep): Use po


From: Dmitry Antipov
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r110496: * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
Date: Wed, 10 Oct 2012 18:45:07 +0400
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 110496
committer: Dmitry Antipov <address@hidden>
branch nick: trunk
timestamp: Wed 2012-10-10 18:45:07 +0400
message:
  * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
modified:
  src/ChangeLog
  src/alloc.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-10-10 06:39:16 +0000
+++ b/src/ChangeLog     2012-10-10 14:45:07 +0000
@@ -1,3 +1,7 @@
+2012-10-10  Dmitry Antipov  <address@hidden>
+
+       * alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
+
 2012-10-10  Paul Eggert  <address@hidden>
 
        * commands.h (immediate_quit): Remove duplicate decl.

=== modified file 'src/alloc.c'
--- a/src/alloc.c       2012-10-01 06:36:54 +0000
+++ b/src/alloc.c       2012-10-10 14:45:07 +0000
@@ -6311,19 +6311,14 @@
 
   /* 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 @@
          /* 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;
        }
   }
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]