Commit 0699fc18 authored by Dmitry Antipov's avatar Dmitry Antipov
Browse files

* alloc.c (mark_object): Revert window marking code

since it's unsafe for the Fset_window_configuration.
parent 4fd78b62
2012-09-06 Dmitry Antipov <dmantipov@yandex.ru>
* alloc.c (mark_object): Revert window marking code
since it's unsafe for the Fset_window_configuration.
2012-09-05 Paul Eggert <eggert@cs.ucla.edu> 2012-09-05 Paul Eggert <eggert@cs.ucla.edu>
Fix race conditions with signal handlers and errno. Fix race conditions with signal handlers and errno.
......
...@@ -6019,22 +6019,18 @@ mark_object (Lisp_Object arg) ...@@ -6019,22 +6019,18 @@ mark_object (Lisp_Object arg)
case PVEC_WINDOW: case PVEC_WINDOW:
{ {
struct window *w = (struct window *) ptr; struct window *w = (struct window *) ptr;
bool leaf = NILP (w->hchild) && NILP (w->vchild);
/* Even if the window is deleted, we can't mark just the window
if (leaf && NILP (w->buffer)) itself because set-window-configuration can resurrect it. */
/* If the window is deleted, mark just the window itself. */ mark_vectorlike (ptr);
VECTOR_MARK (ptr); /* Mark glyphs for leaf windows. Marking window
else matrices is sufficient because frame matrices
use the same glyph memory. */
if (NILP (w->hchild) && NILP (w->vchild)
&& w->current_matrix)
{ {
mark_vectorlike (ptr); mark_glyph_matrix (w->current_matrix);
/* Mark glyphs for leaf windows. Marking window mark_glyph_matrix (w->desired_matrix);
matrices is sufficient because frame matrices
use the same glyph memory. */
if (leaf && w->current_matrix)
{
mark_glyph_matrix (w->current_matrix);
mark_glyph_matrix (w->desired_matrix);
}
} }
} }
break; break;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment