emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r110563: * buffer.c (Fkill_buffer): W


From: Dmitry Antipov
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r110563: * buffer.c (Fkill_buffer): When unchaining the marker,
Date: Wed, 17 Oct 2012 09:22:23 +0400
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 110563
committer: Dmitry Antipov <address@hidden>
branch nick: trunk
timestamp: Wed 2012-10-17 09:22:23 +0400
message:
  * buffer.c (Fkill_buffer): When unchaining the marker,
  reset it's buffer pointer to NULL (Bug#12652).
modified:
  src/ChangeLog
  src/buffer.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-10-17 04:58:15 +0000
+++ b/src/ChangeLog     2012-10-17 05:22:23 +0000
@@ -1,5 +1,10 @@
 2012-10-17  Dmitry Antipov  <address@hidden>
 
+       * buffer.c (Fkill_buffer): When unchaining the marker,
+       reset it's buffer pointer to NULL (Bug#12652).
+
+2012-10-17  Dmitry Antipov  <address@hidden>
+
        Do not verify indirection counters of killed buffers (Bug#12579).
        * buffer.h (BUFFER_CHECK_INDIRECTION): New macro.
        * buffer.c (compact_buffer, set_buffer_internal_1): Use it.

=== modified file 'src/buffer.c'
--- a/src/buffer.c      2012-10-17 04:58:15 +0000
+++ b/src/buffer.c      2012-10-17 05:22:23 +0000
@@ -1881,19 +1881,20 @@
 
   if (b->base_buffer)
     {
-      { /* Unchain all markers that belong to this indirect buffer.
-          Don't unchain the markers that belong to the base buffer
-          or its other indirect buffers.  */
-       struct Lisp_Marker **mp;
-       for (mp = &BUF_MARKERS (b); *mp; )
-         {
-           struct Lisp_Marker *m = *mp;
-           if (m->buffer == b)
+      /* Unchain all markers that belong to this indirect buffer.
+        Don't unchain the markers that belong to the base buffer
+        or its other indirect buffers.  */
+      struct Lisp_Marker **mp = &BUF_MARKERS (b);
+      while ((m = *mp))
+       {
+         if (m->buffer == b)
+           {
+             m->buffer = NULL;
              *mp = m->next;
-           else
-             mp = &m->next;
-         }
-      }
+           }
+         else
+           mp = &m->next;
+       }
     }
   else
     {


reply via email to

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