diff options
| author | Dmitry Antipov | 2012-09-11 19:42:50 +0400 |
|---|---|---|
| committer | Dmitry Antipov | 2012-09-11 19:42:50 +0400 |
| commit | d73e321cc241c0029e6874501cf32ee63643825c (patch) | |
| tree | 457e4314e10ba51343f53a20ac8104d9db6203b2 /src/window.h | |
| parent | 96d0357142bf277e6eb4d957a59b2c655034e2b7 (diff) | |
| download | emacs-d73e321cc241c0029e6874501cf32ee63643825c.tar.gz emacs-d73e321cc241c0029e6874501cf32ee63643825c.zip | |
Discard killed buffers from deleted window and frame objects.
This reduces an amount of references to killed buffers and
helps GC to reclaim them faster.
* alloc.c (discard_killed_buffers): New function.
(mark_object): Use it for deleted windows and frames.
(mark_object): If symbol's value is set up for a killed buffer
or deleted frame, restore it's global binding.
* data.c (swap_in_global_binding): Add GC notice.
(swap_in_symval_forwarding): Use convenient set_blv_where.
* window.c (wset_next_buffers, wset_prev_buffers): Move ...
* window.h: ... to here.
Diffstat (limited to 'src/window.h')
| -rw-r--r-- | src/window.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/window.h b/src/window.h index a70bc55bac5..62ae43a999d 100644 --- a/src/window.h +++ b/src/window.h | |||
| @@ -414,7 +414,16 @@ wset_window_end_vpos (struct window *w, Lisp_Object val) | |||
| 414 | { | 414 | { |
| 415 | w->window_end_vpos = val; | 415 | w->window_end_vpos = val; |
| 416 | } | 416 | } |
| 417 | 417 | WINDOW_INLINE void | |
| 418 | wset_prev_buffers (struct window *w, Lisp_Object val) | ||
| 419 | { | ||
| 420 | w->prev_buffers = val; | ||
| 421 | } | ||
| 422 | WINDOW_INLINE void | ||
| 423 | wset_next_buffers (struct window *w, Lisp_Object val) | ||
| 424 | { | ||
| 425 | w->next_buffers = val; | ||
| 426 | } | ||
| 418 | 427 | ||
| 419 | /* 1 if W is a minibuffer window. */ | 428 | /* 1 if W is a minibuffer window. */ |
| 420 | 429 | ||