diff options
| author | Dmitry Antipov | 2012-09-06 11:10:25 +0400 |
|---|---|---|
| committer | Dmitry Antipov | 2012-09-06 11:10:25 +0400 |
| commit | 0699fc18a5ea00b9a6d64b0e0ebf33b4723beb10 (patch) | |
| tree | fb192a64f6e7adde325ed2aa7296051e9ec16d37 /src/alloc.c | |
| parent | 4fd78b62d1c815e4dfd7ffe4e7862ef4c4fceaca (diff) | |
| download | emacs-0699fc18a5ea00b9a6d64b0e0ebf33b4723beb10.tar.gz emacs-0699fc18a5ea00b9a6d64b0e0ebf33b4723beb10.zip | |
* alloc.c (mark_object): Revert window marking code
since it's unsafe for the Fset_window_configuration.
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/src/alloc.c b/src/alloc.c index e90cca637df..aca0a82d1b5 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -6019,22 +6019,18 @@ mark_object (Lisp_Object arg) | |||
| 6019 | case PVEC_WINDOW: | 6019 | case PVEC_WINDOW: |
| 6020 | { | 6020 | { |
| 6021 | struct window *w = (struct window *) ptr; | 6021 | struct window *w = (struct window *) ptr; |
| 6022 | bool leaf = NILP (w->hchild) && NILP (w->vchild); | 6022 | |
| 6023 | 6023 | /* Even if the window is deleted, we can't mark just the window | |
| 6024 | if (leaf && NILP (w->buffer)) | 6024 | itself because set-window-configuration can resurrect it. */ |
| 6025 | /* If the window is deleted, mark just the window itself. */ | 6025 | mark_vectorlike (ptr); |
| 6026 | VECTOR_MARK (ptr); | 6026 | /* Mark glyphs for leaf windows. Marking window |
| 6027 | else | 6027 | matrices is sufficient because frame matrices |
| 6028 | use the same glyph memory. */ | ||
| 6029 | if (NILP (w->hchild) && NILP (w->vchild) | ||
| 6030 | && w->current_matrix) | ||
| 6028 | { | 6031 | { |
| 6029 | mark_vectorlike (ptr); | 6032 | mark_glyph_matrix (w->current_matrix); |
| 6030 | /* Mark glyphs for leaf windows. Marking window | 6033 | mark_glyph_matrix (w->desired_matrix); |
| 6031 | matrices is sufficient because frame matrices | ||
| 6032 | use the same glyph memory. */ | ||
| 6033 | if (leaf && w->current_matrix) | ||
| 6034 | { | ||
| 6035 | mark_glyph_matrix (w->current_matrix); | ||
| 6036 | mark_glyph_matrix (w->desired_matrix); | ||
| 6037 | } | ||
| 6038 | } | 6034 | } |
| 6039 | } | 6035 | } |
| 6040 | break; | 6036 | break; |