emacs-diffs
[Top][All Lists]
Advanced

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

emacs-28 c05864dd25: Avoid another segfault in 'face_at_buffer_position'


From: Eli Zaretskii
Subject: emacs-28 c05864dd25: Avoid another segfault in 'face_at_buffer_position'
Date: Fri, 14 Jan 2022 09:12:24 -0500 (EST)

branch: emacs-28
commit c05864dd25c820fe250672d32d6ec77ba946670d
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>

    Avoid another segfault in 'face_at_buffer_position'
    
    * src/xfaces.c (face_at_buffer_position): Make really sure the
    default face is usable.  (Bug#53254)
---
 src/xfaces.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/xfaces.c b/src/xfaces.c
index b9fb7c0ac1..dff5ae346d 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -6425,8 +6425,12 @@ face_at_buffer_position (struct window *w, ptrdiff_t pos,
 
     default_face = FACE_FROM_ID_OR_NULL (f, face_id);
     if (!default_face)
-      default_face = FACE_FROM_ID (f,
-                                  lookup_basic_face (w, f, DEFAULT_FACE_ID));
+      {
+       if (FRAME_FACE_CACHE (f)->used == 0)
+         recompute_basic_faces (f);
+       default_face = FACE_FROM_ID (f,
+                                    lookup_basic_face (w, f, DEFAULT_FACE_ID));
+      }
   }
 
   /* Optimize common cases where we can use the default face.  */



reply via email to

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