diff options
| author | Dmitry Antipov | 2012-10-17 08:58:15 +0400 |
|---|---|---|
| committer | Dmitry Antipov | 2012-10-17 08:58:15 +0400 |
| commit | f0863a54681cfe7d40a0844bd2ce812eed408002 (patch) | |
| tree | 5f6db03327a067c8d3348518a33c793430d3afc7 /src/buffer.h | |
| parent | ab1dc14b220747e527d507d40905a24ba5c692d9 (diff) | |
| download | emacs-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.h | 16 |
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 | ||
| 968 | extern struct buffer *all_buffers; | 984 | extern struct buffer *all_buffers; |