diff options
| author | Kim F. Storm | 2005-09-08 22:29:49 +0000 |
|---|---|---|
| committer | Kim F. Storm | 2005-09-08 22:29:49 +0000 |
| commit | 2bb212bd1fcad3599d0a2634beb2668e9a7c0d4a (patch) | |
| tree | 62a649cf14cd7fd6d96f167e57cea7a7964232d6 /src | |
| parent | ae8a56896804637a69c299ade53b2295f9ab7138 (diff) | |
| download | emacs-2bb212bd1fcad3599d0a2634beb2668e9a7c0d4a.tar.gz emacs-2bb212bd1fcad3599d0a2634beb2668e9a7c0d4a.zip | |
(redisplay_internal): Mark updated frames in new updated_p
member. Remove local `updated' array and associated variables.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xdisp.c | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index 33317f4c491..324e7e29f07 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -10615,13 +10615,9 @@ redisplay_internal (preserve_echo_area) | |||
| 10615 | if (consider_all_windows_p) | 10615 | if (consider_all_windows_p) |
| 10616 | { | 10616 | { |
| 10617 | Lisp_Object tail, frame; | 10617 | Lisp_Object tail, frame; |
| 10618 | int i, n = 0, size = 5; | ||
| 10619 | struct frame **updated; | ||
| 10620 | 10618 | ||
| 10621 | FOR_EACH_FRAME (tail, frame) | 10619 | FOR_EACH_FRAME (tail, frame) |
| 10622 | size++; | 10620 | XFRAME (frame)->updated_p = 0; |
| 10623 | |||
| 10624 | updated = (struct frame **) alloca (size * sizeof *updated); | ||
| 10625 | 10621 | ||
| 10626 | /* Recompute # windows showing selected buffer. This will be | 10622 | /* Recompute # windows showing selected buffer. This will be |
| 10627 | incremented each time such a window is displayed. */ | 10623 | incremented each time such a window is displayed. */ |
| @@ -10683,15 +10679,7 @@ redisplay_internal (preserve_echo_area) | |||
| 10683 | break; | 10679 | break; |
| 10684 | #endif | 10680 | #endif |
| 10685 | 10681 | ||
| 10686 | if (n == size) | 10682 | f->updated_p = 1; |
| 10687 | { | ||
| 10688 | int nbytes = size * sizeof *updated; | ||
| 10689 | struct frame **p = (struct frame **) alloca (2 * nbytes); | ||
| 10690 | bcopy (updated, p, nbytes); | ||
| 10691 | size *= 2; | ||
| 10692 | } | ||
| 10693 | |||
| 10694 | updated[n++] = f; | ||
| 10695 | } | 10683 | } |
| 10696 | } | 10684 | } |
| 10697 | } | 10685 | } |
| @@ -10701,12 +10689,15 @@ redisplay_internal (preserve_echo_area) | |||
| 10701 | /* Do the mark_window_display_accurate after all windows have | 10689 | /* Do the mark_window_display_accurate after all windows have |
| 10702 | been redisplayed because this call resets flags in buffers | 10690 | been redisplayed because this call resets flags in buffers |
| 10703 | which are needed for proper redisplay. */ | 10691 | which are needed for proper redisplay. */ |
| 10704 | for (i = 0; i < n; ++i) | 10692 | FOR_EACH_FRAME (tail, frame) |
| 10705 | { | 10693 | { |
| 10706 | struct frame *f = updated[i]; | 10694 | struct frame *f = XFRAME (frame); |
| 10707 | mark_window_display_accurate (f->root_window, 1); | 10695 | if (f->updated_p) |
| 10708 | if (frame_up_to_date_hook) | 10696 | { |
| 10709 | frame_up_to_date_hook (f); | 10697 | mark_window_display_accurate (f->root_window, 1); |
| 10698 | if (frame_up_to_date_hook) | ||
| 10699 | frame_up_to_date_hook (f); | ||
| 10700 | } | ||
| 10710 | } | 10701 | } |
| 10711 | } | 10702 | } |
| 10712 | } | 10703 | } |