Mercurial > emacs
diff src/xdisp.c @ 9530:a605bfe5bf8a
(redisplay): Call clear_face_cache instead
of clear_face_vector. Do it at most once per 1000 redisplays.
| author | Richard M. Stallman <rms@gnu.org> |
|---|---|
| date | Fri, 14 Oct 1994 05:20:15 +0000 |
| parents | bdad001a9b91 |
| children | b36d5e88cccc |
line wrap: on
line diff
--- a/src/xdisp.c Fri Oct 14 05:19:13 1994 +0000 +++ b/src/xdisp.c Fri Oct 14 05:20:15 1994 +0000 @@ -545,6 +545,10 @@ static int do_verify_charstarts; +/* Counter is used to clear the face cache + no more than once ever 1000 redisplays. */ +static int clear_face_cache_count; + void redisplay () { @@ -732,14 +736,20 @@ this_line_bufpos = 0; all_windows |= buffer_shared > 1; + clear_face_cache_count++; + if (all_windows) { Lisp_Object tail, frame; #ifdef HAVE_X_WINDOWS - /* Since we're doing a thorough redisplay, we might as well - recompute all our display faces. */ - clear_face_vector (); + /* Clear the face cache, only when we do a full redisplay + and not too often either. */ + if (clear_face_cache_count > 1000) + { + clear_face_cache (); + clear_face_cache_count = 0; + } #endif /* Recompute # windows showing selected buffer.
