diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/fontset.c | 12 | ||||
| -rw-r--r-- | src/xdisp.c | 4 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/fontset.c b/src/fontset.c index bca9452418e..c2bb8b21f26 100644 --- a/src/fontset.c +++ b/src/fontset.c | |||
| @@ -367,8 +367,14 @@ fontset_add (Lisp_Object fontset, Lisp_Object range, Lisp_Object elt, Lisp_Objec | |||
| 367 | static int | 367 | static int |
| 368 | fontset_compare_rfontdef (const void *val1, const void *val2) | 368 | fontset_compare_rfontdef (const void *val1, const void *val2) |
| 369 | { | 369 | { |
| 370 | return (RFONT_DEF_SCORE (*(Lisp_Object *) val1) | 370 | Lisp_Object v1 = *(Lisp_Object *) val1, v2 = *(Lisp_Object *) val2; |
| 371 | - RFONT_DEF_SCORE (*(Lisp_Object *) val2)); | 371 | if (NILP (v1) && NILP (v2)) |
| 372 | return 0; | ||
| 373 | else if (NILP (v1)) | ||
| 374 | return INT_MIN; | ||
| 375 | else if (NILP (v2)) | ||
| 376 | return INT_MAX; | ||
| 377 | return (RFONT_DEF_SCORE (v1) - RFONT_DEF_SCORE (v2)); | ||
| 372 | } | 378 | } |
| 373 | 379 | ||
| 374 | /* Update a cons cell which has this form: | 380 | /* Update a cons cell which has this form: |
| @@ -400,6 +406,8 @@ reorder_font_vector (Lisp_Object font_group, struct font *font) | |||
| 400 | for (i = 0; i < size; i++) | 406 | for (i = 0; i < size; i++) |
| 401 | { | 407 | { |
| 402 | Lisp_Object rfont_def = AREF (vec, i); | 408 | Lisp_Object rfont_def = AREF (vec, i); |
| 409 | if (NILP (rfont_def)) | ||
| 410 | continue; | ||
| 403 | Lisp_Object font_def = RFONT_DEF_FONT_DEF (rfont_def); | 411 | Lisp_Object font_def = RFONT_DEF_FONT_DEF (rfont_def); |
| 404 | Lisp_Object font_spec = FONT_DEF_SPEC (font_def); | 412 | Lisp_Object font_spec = FONT_DEF_SPEC (font_def); |
| 405 | int score = RFONT_DEF_SCORE (rfont_def) & 0xFF; | 413 | int score = RFONT_DEF_SCORE (rfont_def) & 0xFF; |
diff --git a/src/xdisp.c b/src/xdisp.c index c2aa314c1ad..3c594b54add 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -31441,6 +31441,10 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_glyphs_face draw) | |||
| 31441 | struct window *w = XWINDOW (hlinfo->mouse_face_window); | 31441 | struct window *w = XWINDOW (hlinfo->mouse_face_window); |
| 31442 | struct frame *f = XFRAME (WINDOW_FRAME (w)); | 31442 | struct frame *f = XFRAME (WINDOW_FRAME (w)); |
| 31443 | 31443 | ||
| 31444 | /* Don't bother doing anything if we are on a wrong frame. */ | ||
| 31445 | if (f != hlinfo->mouse_face_mouse_frame) | ||
| 31446 | return; | ||
| 31447 | |||
| 31444 | if (/* If window is in the process of being destroyed, don't bother | 31448 | if (/* If window is in the process of being destroyed, don't bother |
| 31445 | to do anything. */ | 31449 | to do anything. */ |
| 31446 | w->current_matrix != NULL | 31450 | w->current_matrix != NULL |