[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r109898: * alloc.c (mark_object): Rev
From: |
Dmitry Antipov |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r109898: * alloc.c (mark_object): Revert window marking code |
Date: |
Thu, 06 Sep 2012 11:10:25 +0400 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 109898
committer: Dmitry Antipov <address@hidden>
branch nick: trunk
timestamp: Thu 2012-09-06 11:10:25 +0400
message:
* alloc.c (mark_object): Revert window marking code
since it's unsafe for the Fset_window_configuration.
modified:
src/ChangeLog
src/alloc.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2012-09-05 21:33:53 +0000
+++ b/src/ChangeLog 2012-09-06 07:10:25 +0000
@@ -1,3 +1,8 @@
+2012-09-06 Dmitry Antipov <address@hidden>
+
+ * alloc.c (mark_object): Revert window marking code
+ since it's unsafe for the Fset_window_configuration.
+
2012-09-05 Paul Eggert <address@hidden>
Fix race conditions with signal handlers and errno.
=== modified file 'src/alloc.c'
--- a/src/alloc.c 2012-09-05 15:34:45 +0000
+++ b/src/alloc.c 2012-09-06 07:10:25 +0000
@@ -6019,22 +6019,18 @@
case PVEC_WINDOW:
{
struct window *w = (struct window *) ptr;
- bool leaf = NILP (w->hchild) && NILP (w->vchild);
-
- if (leaf && NILP (w->buffer))
- /* If the window is deleted, mark just the window itself. */
- VECTOR_MARK (ptr);
- else
+
+ /* Even if the window is deleted, we can't mark just the window
+ itself because set-window-configuration can resurrect it. */
+ mark_vectorlike (ptr);
+ /* Mark glyphs for leaf windows. Marking window
+ 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 glyphs for leaf windows. Marking window
- 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);
- }
+ mark_glyph_matrix (w->current_matrix);
+ mark_glyph_matrix (w->desired_matrix);
}
}
break;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r109898: * alloc.c (mark_object): Revert window marking code,
Dmitry Antipov <=