From: Dmitry Antipov Date: Wed, 17 Oct 2012 05:22:23 +0000 (+0400) Subject: * buffer.c (Fkill_buffer): When unchaining the marker, X-Git-Tag: emacs-24.2.90~233^2~2 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d556ebf9b8a36596d752e284d227173c852d4eb8;p=emacs.git * buffer.c (Fkill_buffer): When unchaining the marker, reset it's buffer pointer to NULL (Bug#12652). --- diff --git a/src/ChangeLog b/src/ChangeLog index bea7c9331db..2f2fa27c3b7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-17 Dmitry Antipov + + * buffer.c (Fkill_buffer): When unchaining the marker, + reset it's buffer pointer to NULL (Bug#12652). + 2012-10-17 Dmitry Antipov Do not verify indirection counters of killed buffers (Bug#12579). diff --git a/src/buffer.c b/src/buffer.c index 8e77db66d43..0b3dde27968 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1881,19 +1881,20 @@ cleaning up all windows currently displaying the buffer to be killed. */) 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 {