aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2017-04-26 15:09:12 +0300
committerEli Zaretskii2017-04-26 15:09:12 +0300
commitb780f16953355e931a70f7b0fd666fa7f9dad795 (patch)
tree3f46f92cb0fe49e8b764c55a2f859bad9530db37 /src
parent513d000c75b582edf9acef1c6df00ee2c382dcb9 (diff)
downloademacs-b780f16953355e931a70f7b0fd666fa7f9dad795.tar.gz
emacs-b780f16953355e931a70f7b0fd666fa7f9dad795.zip
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)
Diffstat (limited to 'src')
-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)
306 return XINT (size); 306 return XINT (size);
307 if (NILP (size)) 307 if (NILP (size))
308 return 0; 308 return 0;
309 eassert (FLOATP (size)); 309 if (FRAME_WINDOW_P (f))
310 point_size = XFLOAT_DATA (size); 310 {
311 val = AREF (spec, FONT_DPI_INDEX); 311 eassert (FLOATP (size));
312 if (INTEGERP (val)) 312 point_size = XFLOAT_DATA (size);
313 dpi = XINT (val); 313 val = AREF (spec, FONT_DPI_INDEX);
314 else 314 if (INTEGERP (val))
315 dpi = FRAME_RES_Y (f); 315 dpi = XINT (val);
316 pixel_size = POINT_TO_PIXEL (point_size, dpi); 316 else
317 return pixel_size; 317 dpi = FRAME_RES_Y (f);
318#else 318 pixel_size = POINT_TO_PIXEL (point_size, dpi);
319 return 1; 319 return pixel_size;
320 }
320#endif 321#endif
322 return 1;
321} 323}
322 324
323 325