summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2017-04-26 15:09:12 +0300
committerEli Zaretskii <eliz@gnu.org>2017-04-26 15:09:12 +0300
commitb780f16953355e931a70f7b0fd666fa7f9dad795 (patch)
tree3f46f92cb0fe49e8b764c55a2f859bad9530db37
parent513d000c75b582edf9acef1c6df00ee2c382dcb9 (diff)
downloademacs-b780f16953355e931a70f7b0fd666fa7f9dad795.tar.gz
Avoid segfaults when 'find-font' is invoked for a TTY frame
* src/font.c (font_pixel_size): Don't call GUI functions if F is a text-mode frame. (Bug#26646)
-rw-r--r--src/font.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/font.c b/src/font.c
index dd6191b2b1f..5a3f271ef85 100644
--- a/src/font.c
+++ b/src/font.c
@@ -306,18 +306,20 @@ font_pixel_size (struct frame *f, Lisp_Object spec)
return XINT (size);
if (NILP (size))
return 0;
- eassert (FLOATP (size));
- point_size = XFLOAT_DATA (size);
- val = AREF (spec, FONT_DPI_INDEX);
- if (INTEGERP (val))
- dpi = XINT (val);
- else
- dpi = FRAME_RES_Y (f);
- pixel_size = POINT_TO_PIXEL (point_size, dpi);
- return pixel_size;
-#else
- return 1;
+ if (FRAME_WINDOW_P (f))
+ {
+ eassert (FLOATP (size));
+ point_size = XFLOAT_DATA (size);
+ val = AREF (spec, FONT_DPI_INDEX);
+ if (INTEGERP (val))
+ dpi = XINT (val);
+ else
+ dpi = FRAME_RES_Y (f);
+ pixel_size = POINT_TO_PIXEL (point_size, dpi);
+ return pixel_size;
+ }
#endif
+ return 1;
}