Per-buffer window counters.
authorDmitry Antipov <dmantipov@yandex.ru>
Mon, 10 Dec 2012 17:34:47 +0000 (21:34 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Mon, 10 Dec 2012 17:34:47 +0000 (21:34 +0400)
commit98a07056558be8c13945a3a99b4801996af685a4
tree657c931f7e1cb73ef5158beda8a429013e3a23cf
parent2b8c906403908a5037b52bfecb72b65d0ce0cd1e
Per-buffer window counters.
* buffer.h (struct buffer): New member window_count.
(buffer_window_count): New function.
* buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
Initialize window_count.
(Fkill_buffer): Verify window_count for the buffer being killed.
(modify_overlay): Do not force redisplay if buffer is not shown
in any window.
(init_buffer_once): Initialize window_count for buffer_defaults
and buffer_local_symbols.
* window.h (buffer_shared): Remove declaration.
(wset_buffer): Convert from inline ...
* window.c (wset_buffer): ... to an ordinary function.
(adjust_window_count): New function.
(make_parent_window): Use it.
* xdisp.c (buffer_shared): Remove.
(redisplay_internal, redisplay_window): Adjust users.
(buffer_shared_and_changed): Use per-buffer window counter.
src/ChangeLog
src/buffer.c
src/buffer.h
src/window.c
src/window.h
src/xdisp.c