[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#11822: 24.1; emacsclient terminal mode captures escape characters as

From: Eli Zaretskii
Subject: bug#11822: 24.1; emacsclient terminal mode captures escape characters as text
Date: Fri, 10 Aug 2012 11:08:21 +0300

> Date: Fri, 10 Aug 2012 10:46:23 +0300
> From: Eli Zaretskii <address@hidden>
> Cc: address@hidden
> > Is there a reason recompute_basic_faces can't just clear the cache for its 
> > own frame and leave the others alone?
> Are you saying that the used flag of the frame's cache is not a
> sufficient condition for clearing the face caches?

According to my reading of the code: The used flag being zero means
there are no cached faces in the cache.  So clearing the cache in that
case doesn't sound like we are losing anything.

Moreover, clear_face_cache does not necessarily clear all the caches
of all frames, it does that only conditionally on this test:

  if (clear_fonts_p
      || ++clear_font_table_count == CLEAR_FONT_TABLE_COUNT)

Otherwise, it only clears the GC of each face:

      /* Clear GCs of realized faces.  */
      FOR_EACH_FRAME (tail, frame)
          struct frame *f = XFRAME (frame);
          if (FRAME_WINDOW_P (f))
              clear_face_gcs (FRAME_FACE_CACHE (f));
      clear_image_caches (Qnil);

Which of these happens for you?  Also, can you show the backtraces of
each call to recompute_basic_faces?

In any case, it is only worth our while to talk about the call to
recompute_basic_faces if you time these calls and see that they indeed
take a significant amount of time.  Do they?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]