]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid a crash in mouse-highlight of Speedbar frames.
authorEli Zaretskii <eliz@gnu.org>
Fri, 19 Aug 2011 11:30:29 +0000 (14:30 +0300)
committerEli Zaretskii <eliz@gnu.org>
Fri, 19 Aug 2011 11:30:29 +0000 (14:30 +0300)
 src/xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
 from an Org mode buffer to a Speedbar frame.

src/ChangeLog
src/xfaces.c

index b5474fcc55bc7ad04b1ad10b2fff31e6bfb824ee..85a55b2b7c93d61873c22b4987bb9c03df3ea335 100644 (file)
@@ -1,5 +1,9 @@
 2011-08-19  Eli Zaretskii  <eliz@gnu.org>
 
+       * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
+       face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
+       from an Org mode buffer to a Speedbar frame.
+
        * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
        a composition, take its buffer position from IT->cmp_it.charpos.
        Fixes cursor positioning at the beginning of a line that begins
index 83c92cdbc5241b8e0b471878fa1858b5b8eabfed..52b86638a50d24bdfcb71c626b2ce6060b682e9f 100644 (file)
@@ -6008,9 +6008,18 @@ face_at_buffer_position (struct window *w, EMACS_INT pos,
 
   *endptr = endpos;
 
-  default_face = FACE_FROM_ID (f, base_face_id >= 0 ? base_face_id
-                              : NILP (Vface_remapping_alist) ? DEFAULT_FACE_ID
-                              : lookup_basic_face (f, DEFAULT_FACE_ID));
+  {
+    int face_id;
+
+    if (base_face_id >= 0)
+      face_id = base_face_id;
+    else if (NILP (Vface_remapping_alist))
+      face_id = DEFAULT_FACE_ID;
+    else
+      face_id = lookup_basic_face (f, DEFAULT_FACE_ID);
+
+    default_face = FACE_FROM_ID (f, face_id);
+  }
 
   /* Optimize common cases where we can use the default face.  */
   if (noverlays == 0