changeset 4476:dbf79a1732ba

Don't try to get text width for the null font instance, mswindows 2008-07-10 Aidan Kehoe <kehoea@parhasard.net> * redisplay-msw.c (mswindows_text_width_single_run): Explicitly check for the null font instance, and return zero if so. Avoids the crash documented in http://mid.gmane.org/18473.32468.712317.149457@parhasard.net .
author Aidan Kehoe <kehoea@parhasard.net>
date Thu, 10 Jul 2008 17:05:59 +0200
parents 86283c809984
children ec442dc06fe1
files src/ChangeLog src/redisplay-msw.c
diffstat 2 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sun Jul 06 19:46:19 2008 +0300
+++ b/src/ChangeLog	Thu Jul 10 17:05:59 2008 +0200
@@ -1,3 +1,10 @@
+2008-07-10  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* redisplay-msw.c (mswindows_text_width_single_run): 
+	Explicitly check for the null font instance, and return zero if
+	so. Avoids the crash documented in
+	http://mid.gmane.org/18473.32468.712317.149457@parhasard.net .
+
 2008-05-27  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* editfns.c (Ftranslate_region):  
--- a/src/redisplay-msw.c	Sun Jul 06 19:46:19 2008 +0300
+++ b/src/redisplay-msw.c	Thu Jul 10 17:05:59 2008 +0200
@@ -148,6 +148,15 @@
   Lisp_Object font_inst = FACE_CACHEL_FONT (cachel, run->charset);
   SIZE size;
 
+  /* The X11 code doesn't have to do this explicitly, because there we trust
+     the font instance to know whether it's actually proportional or not,
+     and we use the zero width that is stored in the monospace null font
+     instance.  */
+  if (EQ (Vthe_null_font_instance, font_inst))
+    {
+      return 0;
+    }
+
 #if 0 /* #### not the way of ikeyama's ws */
   if (!fi->proportional_p || !hdc)
     {