Subject: bug#79193: 31.0.50; feature/igc: crashes with no gui frame

From: Eli Zaretskii <[email-masked]>
Date: Thu, 07 Aug 2025 21:42:34 +0300

> Cc: Gerd Möllmann <[email-masked]>,
>  Helmut Eller <[email-masked]>, [email-masked]
> Date: Thu, 07 Aug 2025 17:51:12 +0000
> From:  Pip Cet via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <[email-masked]>
> 
> --- a/src/dispnew.c
> +++ b/src/dispnew.c
> @@ -1192,8 +1192,17 @@ line_hash_code (struct frame *f, struct glyph_row *row)
>  	     index into the frame's face cache), we need the hash
>  	     value to include something specific to the frame, and we
>  	     use the frame cache's address for that purpose.  */
> +#ifndef HAVE_MPS
>  	  if (glyph->frame && glyph->frame != f)
>  	    face_id += (uintptr_t) glyph->frame->face_cache;
> +#else
> +	  if (glyph->frame && glyph->frame != f)
> +	    {
> +	      Lisp_Object face_cache;
> +	      XSETVECTOR (face_cache, glyph->frame->face_cache);
> +	      face_id += igc_hash (face_cache);
> +	    }

Please make sure that the comment to this code is updated to account
for the HAVE_MPS case.

Thanks.