]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid another segfault in 'face_at_buffer_position'
authorEli Zaretskii <eliz@gnu.org>
Fri, 14 Jan 2022 14:11:34 +0000 (16:11 +0200)
committerEli Zaretskii <eliz@gnu.org>
Fri, 14 Jan 2022 14:11:34 +0000 (16:11 +0200)
* src/xfaces.c (face_at_buffer_position): Make really sure the
default face is usable.  (Bug#53254)

src/xfaces.c

index b9fb7c0ac1e713cd551e5f93b41a39102c2ac5c7..dff5ae346de33e6f780514a8cdd79b0c05ad3f09 100644 (file)
@@ -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.  */