aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
authorDmitry Antipov2012-10-17 08:58:15 +0400
committerDmitry Antipov2012-10-17 08:58:15 +0400
commitf0863a54681cfe7d40a0844bd2ce812eed408002 (patch)
tree5f6db03327a067c8d3348518a33c793430d3afc7 /src/buffer.c
parentab1dc14b220747e527d507d40905a24ba5c692d9 (diff)
downloademacs-f0863a54681cfe7d40a0844bd2ce812eed408002.tar.gz
emacs-f0863a54681cfe7d40a0844bd2ce812eed408002.zip
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.
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 861a89b5a0f..8e77db66d43 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1663,18 +1663,11 @@ No argument or nil as argument means do this for the current buffer. */)
1663void 1663void
1664compact_buffer (struct buffer *buffer) 1664compact_buffer (struct buffer *buffer)
1665{ 1665{
1666 /* Verify indirection counters. */ 1666 BUFFER_CHECK_INDIRECTION (buffer);
1667 if (buffer->base_buffer)
1668 {
1669 eassert (buffer->indirections == -1);
1670 eassert (buffer->base_buffer->indirections > 0);
1671 }
1672 else
1673 eassert (buffer->indirections >= 0);
1674 1667
1675 /* Skip dead buffers, indirect buffers and buffers 1668 /* Skip dead buffers, indirect buffers and buffers
1676 which aren't changed since last compaction. */ 1669 which aren't changed since last compaction. */
1677 if (!NILP (buffer->INTERNAL_FIELD (name)) 1670 if (BUFFER_LIVE_P (buffer)
1678 && (buffer->base_buffer == NULL) 1671 && (buffer->base_buffer == NULL)
1679 && (buffer->text->compact != buffer->text->modiff)) 1672 && (buffer->text->compact != buffer->text->modiff))
1680 { 1673 {
@@ -2114,6 +2107,8 @@ set_buffer_internal_1 (register struct buffer *b)
2114 if (current_buffer == b) 2107 if (current_buffer == b)
2115 return; 2108 return;
2116 2109
2110 BUFFER_CHECK_INDIRECTION (b);
2111
2117 old_buf = current_buffer; 2112 old_buf = current_buffer;
2118 current_buffer = b; 2113 current_buffer = b;
2119 last_known_column_point = -1; /* invalidate indentation cache */ 2114 last_known_column_point = -1; /* invalidate indentation cache */