Subject: bug#56559: 29.0.50; Invalid CGContextSaveState on NS

From: Po Lu <[email-masked]>
Date: Fri, 15 Jul 2022 10:43:21 +0800

Gerd Möllmann <[email-masked]> writes:

> 2022-07-14 16:55:41.722952+0200 emacs[65244:294257] [emacs] CGContextSaveGState:
> invalid context 0x0. If you want to see the backtrace, please set
> CG_CONTEXT_SHOW_BACKTRACE environmental variable.
>
> to the terminal from which it is started.  Setting the env variable,
> gives the backtrace
>
> 2022-07-14 16:56:29.249179+0200 emacs[65299:295037] [emacs] CGContextSetLineJoin: invalid context 0x0. Backtrace:
>   <+[NSBezierPath strokeRect:]+136>
>    <ns_draw_window_cursor+5448>
>     <display_and_set_cursor+4532>
>      <update_window_cursor+1556>
>       <update_cursor_in_window_tree+444>
>        <gui_update_cursor+100>
>         <ns_set_cursor_color+1140>
>          <gui_set_frame_parameters+15768>
>           <Fmodify_frame_parameters+856>
>            <Finternal_set_lisp_face_attribute+54152>
>   

Could you please try to find out if `ctx' is ever nil here (in
ns_draw_window_cursor):

  ns_focus (f, NULL, 0);

->NSGraphicsContext *ctx = [NSGraphicsContext currentContext];
  [ctx saveGraphicsState];

and if so, what the value of `ns_updating_frame' and `f' are at that
location.

Thanks.