Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.1048 emacs/src/xdisp.c:1.1049
*** emacs/src/xdisp.c:1.1048 Wed Sep 7 21:59:36 2005
--- emacs/src/xdisp.c Thu Sep 8 22:29:49 2005
***************
*** 10615,10627 ****
if (consider_all_windows_p)
{
Lisp_Object tail, frame;
- int i, n = 0, size = 5;
- struct frame **updated;
FOR_EACH_FRAME (tail, frame)
! size++;
!
! updated = (struct frame **) alloca (size * sizeof *updated);
/* Recompute # windows showing selected buffer. This will be
incremented each time such a window is displayed. */
--- 10615,10623 ----
if (consider_all_windows_p)
{
Lisp_Object tail, frame;
FOR_EACH_FRAME (tail, frame)
! XFRAME (frame)->updated_p = 0;
/* Recompute # windows showing selected buffer. This will be
incremented each time such a window is displayed. */
***************
*** 10683,10697 ****
break;
#endif
! if (n == size)
! {
! int nbytes = size * sizeof *updated;
! struct frame **p = (struct frame **) alloca (2 * nbytes);
! bcopy (updated, p, nbytes);
! size *= 2;
! }
!
! updated[n++] = f;
}
}
}
--- 10679,10685 ----
break;
#endif
! f->updated_p = 1;
}
}
}
***************
*** 10701,10712 ****
/* Do the mark_window_display_accurate after all windows have
been redisplayed because this call resets flags in buffers
which are needed for proper redisplay. */
! for (i = 0; i < n; ++i)
{
! struct frame *f = updated[i];
! mark_window_display_accurate (f->root_window, 1);
! if (frame_up_to_date_hook)
! frame_up_to_date_hook (f);
}
}
}
--- 10689,10703 ----
/* Do the mark_window_display_accurate after all windows have
been redisplayed because this call resets flags in buffers
which are needed for proper redisplay. */
! FOR_EACH_FRAME (tail, frame)
{
! struct frame *f = XFRAME (frame);
! if (f->updated_p)
! {
! mark_window_display_accurate (f->root_window, 1);
! if (frame_up_to_date_hook)
! frame_up_to_date_hook (f);
! }
}
}
}
_______________________________________________
Emacs-diffs mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-diffs