aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.h
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.h
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.h')
-rw-r--r--src/buffer.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/buffer.h b/src/buffer.h
index d18ef30ea38..9e0e9eef0b1 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -963,6 +963,22 @@ bset_width_table (struct buffer *b, Lisp_Object val)
963 963
964#define BUFFER_LIVE_P(b) (!NILP (BVAR (b, name))) 964#define BUFFER_LIVE_P(b) (!NILP (BVAR (b, name)))
965 965
966/* Verify indirection counters. */
967
968#define BUFFER_CHECK_INDIRECTION(b) \
969 do { \
970 if (BUFFER_LIVE_P (b)) \
971 { \
972 if (b->base_buffer) \
973 { \
974 eassert (b->indirections == -1); \
975 eassert (b->base_buffer->indirections > 0); \
976 } \
977 else \
978 eassert (b->indirections >= 0); \
979 } \
980 } while (0)
981
966/* Chain of all buffers, including killed ones. */ 982/* Chain of all buffers, including killed ones. */
967 983
968extern struct buffer *all_buffers; 984extern struct buffer *all_buffers;