all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: "Gerd Möllmann" <gerd.moellmann@gmail.com>
Cc: eller.helmut@gmail.com, emacs-devel@gnu.org
Subject: Re: MPS: face-cache
Date: Sun, 28 Apr 2024 09:09:17 +0300	[thread overview]
Message-ID: <86a5leuigi.fsf@gnu.org> (raw)
In-Reply-To: <m2h6fmf53u.fsf@pro2.fritz.box> (message from Gerd Möllmann on Sun, 28 Apr 2024 07:06:45 +0200)

> From: Gerd Möllmann <gerd.moellmann@gmail.com>
> Cc: Helmut Eller <eller.helmut@gmail.com>,  emacs-devel missing value
>  <emacs-devel@gnu.org>
> Date: Sun, 28 Apr 2024 07:06:45 +0200
> 
> Did that now, but it's still crashing. My impression, which might of
> course be completely wrong, is that we are losing faces somehow, i.e.
> something is wrong with the cache.

Could be.

But there's also FRAME_FONTSET, e.g. for w32:

  #define FRAME_FONTSET(f) ((f)->output_data.w32->fontset)

Are we handling it correctly vis-a-vis GC?  fix_frame doesn't do
anything with it, AFAICT.  Should it?

When Emacs is looking for a font, it consults the fontset.  In one
case, I got a crash with Helmut's recipe, like this:

  Thread 1 received signal SIGSEGV, Segmentation fault.
  parse_str_as_multibyte (
      str=0xc045000 <error: Cannot access memory at address 0xc045000>,
      str@entry=0xaa1a880 "", len=len@entry=211856320,
      nchars=nchars@entry=0x6df89cc, nbytes=nbytes@entry=0x6df89c8)
      at character.c:555
  555               int n = multibyte_length (str, NULL, false, false);
  (gdb) bt
  #0  parse_str_as_multibyte (
      str=0xc045000 <error: Cannot access memory at address 0xc045000>,
      str@entry=0xaa1a880 "", len=len@entry=211856320,
      nchars=nchars@entry=0x6df89cc, nbytes=nbytes@entry=0x6df89c8)
      at character.c:555
  #1  0x003141a1 in font_intern_prop (str=0xaa1a880 "", len=211856320,
      force_symbol=force_symbol@entry=true) at font.c:326
  #2  0x0031d387 in font_find_for_lface (f=f@entry=0xaa1c478,
      attrs=attrs@entry=0x1dc263b0, spec=0xcb8ebed, c=c@entry=21457)
      at lisp.h:751
  #3  0x003e7c01 in fontset_find_font (fontset=0xb41812d, c=c@entry=21457,
      face=face@entry=0x1dc263b0, charset_id=charset_id@entry=42,
      fallback=fallback@entry=false) at lisp.h:751
  #4  0x003e8475 in fontset_font (fontset=fontset@entry=0xb3fc765,
      c=c@entry=21457, face=face@entry=0x1dc263b0, id=42) at lisp.h:751
  #5  0x003e9232 in face_for_char (f=0xaa1c478, face=face@entry=0x1dc263b0,
      c=21457, pos=pos@entry=788, object=0x0) at fontset.c:1031
  #6  0x001a79d4 in FACE_FOR_CHAR (object=<optimized out>, pos=788,
      character=<optimized out>, face=0x1dc263b0, f=<optimized out>)
      at dispextern.h:1959
  #7  get_next_display_element (it=it@entry=0x6dfa6b0) at xdisp.c:8499
  #8  0x001b0d96 in display_line (it=it@entry=0x6dfa6b0,
      cursor_vpos=cursor_vpos@entry=1) at xdisp.c:25298
  #9  0x001b7611 in try_window (window=<optimized out>, window@entry=0xc8007b5,
      pos=..., flags=<optimized out>, flags@entry=1) at xdisp.c:21139
  #10 0x001d9947 in redisplay_window (window=window@entry=0xc8007b5,
      just_this_one_p=just_this_one_p@entry=false) at xdisp.c:20533
  #11 0x001dcb44 in redisplay_window_0 (window=0xc8007b5) at xdisp.c:18018
  #12 0x002f29db in internal_condition_case_1 (
      bfun=bfun@entry=0x1dcb0f <redisplay_window_0>, arg=arg@entry=0xc8007b5,
      handlers=0x1a3a10c3, hfun=hfun@entry=0x186297 <redisplay_window_error>)
      at eval.c:1568
  #13 0x00181eed in redisplay_windows (window=0xc8007b5) at xdisp.c:17987
  #14 0x001c0f5f in redisplay_internal () at xdisp.c:17387
  #15 0x001c24b3 in redisplay () at xdisp.c:16565
  #16 0x002661c8 in read_char (commandflag=<optimized out>, commandflag@entry=1,
      map=<optimized out>, map@entry=0xa820f7b, prev_event=<optimized out>,
      used_mouse_menu=<optimized out>, used_mouse_menu@entry=0x6dff7fb,
      end_time=<optimized out>, end_time@entry=0x0) at keyboard.c:2678
  #17 0x002697fd in read_key_sequence (keybuf=keybuf@entry=0x6dff8d8,
      prompt=prompt@entry=0x0,
      dont_downcase_last=dont_downcase_last@entry=false,
      can_return_switch_frame=<optimized out>,
      can_return_switch_frame@entry=true, fix_current_buffer=<optimized out>,
      fix_current_buffer@entry=true, prevent_redisplay=<optimized out>,
      prevent_redisplay@entry=false, disable_text_conversion_p=false)
      at keyboard.c:10727
  #18 0x0026b38b in command_loop_1 () at lisp.h:1179
  #19 0x002f293d in internal_condition_case (
      bfun=bfun@entry=0x26b1d0 <command_loop_1>, handlers=handlers@entry=0x48,
      hfun=hfun@entry=0x25e516 <cmd_error>) at eval.c:1544
  #20 0x0025482b in command_loop_2 (handlers=0x48) at keyboard.c:1168
  #21 0x002f2857 in internal_catch (tag=tag@entry=0x87a8,
      func=func@entry=0x25480b <command_loop_2>, arg=arg@entry=0x48)
      at eval.c:1224
  #22 0x002547cb in command_loop () at lisp.h:1179
  #23 0x0025e0d1 in recursive_edit_1 () at keyboard.c:754
  #24 0x0025e3c1 in Frecursive_edit () at keyboard.c:837
  #25 0x00497d5f in main (argc=<optimized out>, argv=<optimized out>)
      at emacs.c:2626

Note that the string length in parse_str_as_multibyte is completely
bogus, which led me look into what we do with fontsets, because frame
#4 calls fontset_font.  The default fontset, Vdefault_fontset, is
staticpro'd, but that's all I found.



  parent reply	other threads:[~2024-04-28  6:09 UTC|newest]

Thread overview: 234+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-27 20:20 MPS: face-cache Gerd Möllmann
2024-04-28  5:06 ` Gerd Möllmann
2024-04-28  5:58   ` Gerd Möllmann
2024-04-28  6:09   ` Eli Zaretskii [this message]
2024-04-28  6:28     ` Gerd Möllmann
2024-04-28  6:45       ` Eli Zaretskii
2024-04-28  6:50         ` Gerd Möllmann
2024-04-28  7:37       ` Eli Zaretskii
2024-04-28  7:41         ` Gerd Möllmann
2024-04-28  6:50   ` Helmut Eller
2024-04-28  6:53     ` Gerd Möllmann
2024-04-28  6:58       ` Helmut Eller
2024-04-28  6:59         ` Gerd Möllmann
2024-04-28  7:10           ` Gerd Möllmann
2024-04-28  7:22             ` Gerd Möllmann
2024-04-28  7:29               ` Eli Zaretskii
2024-04-28  7:38                 ` Gerd Möllmann
2024-04-28  7:56                   ` Eli Zaretskii
2024-04-28  8:05                     ` Gerd Möllmann
2024-04-28  8:13                       ` Eli Zaretskii
2024-04-28  8:18                         ` Gerd Möllmann
2024-04-28  8:23                     ` Po Lu
2024-04-28  8:45                       ` Eli Zaretskii
2024-04-28  8:22                   ` Po Lu
2024-04-28  8:29                     ` Gerd Möllmann
2024-04-28  8:35                       ` Gerd Möllmann
2024-04-28  8:41                       ` Po Lu
2024-04-28  8:43                         ` Gerd Möllmann
2024-04-28  8:55                         ` Gerd Möllmann
2024-04-28  7:55                 ` Gerd Möllmann
2024-04-28  7:58                   ` Eli Zaretskii
2024-04-28  8:04               ` Helmut Eller
2024-04-28  8:08                 ` Gerd Möllmann
2024-04-28  8:52               ` Helmut Eller
2024-04-28  8:59                 ` Gerd Möllmann
2024-04-28  9:04                   ` Helmut Eller
2024-04-28  9:14                     ` Gerd Möllmann
2024-04-28  9:26                       ` Helmut Eller
2024-04-28  9:34                         ` Gerd Möllmann
2024-04-28  9:40                           ` Helmut Eller
2024-04-28 10:11                             ` Gerd Möllmann
2024-04-28 10:17                         ` Eli Zaretskii
2024-04-28 10:20                           ` Gerd Möllmann
2024-04-28 10:43                       ` Eli Zaretskii
2024-04-28 12:23                         ` Gerd Möllmann
2024-04-28 12:26                           ` Gerd Möllmann
2024-04-28 12:59                             ` Helmut Eller
2024-04-28 13:55                               ` Eli Zaretskii
2024-04-28 14:06                               ` Gerd Möllmann
2024-04-28 14:30                                 ` Gerd Möllmann
2024-04-29  7:15                                 ` Helmut Eller
2024-04-29  7:52                                   ` Gerd Möllmann
2024-04-29  8:03                                     ` Helmut Eller
2024-04-29  8:21                                       ` Gerd Möllmann
2024-04-29  8:37                                       ` Eli Zaretskii
2024-04-29  8:41                                         ` Gerd Möllmann
2024-04-29  8:54                                         ` Helmut Eller
2024-04-29 11:05                                           ` Eli Zaretskii
2024-04-29 11:18                                             ` Gerd Möllmann
2024-04-29 11:41                                               ` Eli Zaretskii
2024-04-29 13:07                                             ` Helmut Eller
2024-04-29 13:22                                               ` Eli Zaretskii
2024-04-29 13:38                                                 ` Helmut Eller
2024-04-29 13:57                                                   ` Eli Zaretskii
2024-04-29 15:19                                                 ` Helmut Eller
2024-04-29 15:32                                                   ` Eli Zaretskii
2024-04-29 15:37                                                     ` Eli Zaretskii
2024-04-29  8:39                                   ` Eli Zaretskii
2024-04-29  8:42                                     ` Gerd Möllmann
2024-04-29 13:13                                   ` Po Lu
2024-04-29 18:47                                   ` Gerd Möllmann
2024-04-29 19:15                                     ` Helmut Eller
2024-04-29 19:36                                       ` Gerd Möllmann
2024-04-30  5:52                                         ` Helmut Eller
2024-04-30  6:04                                           ` Gerd Möllmann
2024-04-30  6:36                                             ` MPS: staticpro everything Helmut Eller
2024-04-30  6:54                                               ` Gerd Möllmann
2024-04-30 18:57                                                 ` Helmut Eller
2024-04-30 19:10                                                   ` Gerd Möllmann
2024-04-30 19:22                                                   ` Eli Zaretskii
2024-05-01  6:47                                                     ` Gerd Möllmann
2024-05-01  7:33                                                       ` Helmut Eller
2024-05-01  7:46                                                         ` Gerd Möllmann
2024-05-01 12:15                                                       ` Eli Zaretskii
2024-05-01  6:53                                                     ` Helmut Eller
2024-05-01 13:06                                                       ` Eli Zaretskii
2024-05-01 13:48                                                         ` Gerd Möllmann
2024-05-01 14:02                                                           ` Eli Zaretskii
2024-05-01 14:08                                                         ` Helmut Eller
2024-05-01 14:20                                                           ` Gerd Möllmann
2024-05-01 15:02                                                           ` Eli Zaretskii
2024-05-01 16:06                                                             ` Helmut Eller
2024-05-02  8:01                                                               ` Eli Zaretskii
2024-05-02  9:04                                                                 ` Gerd Möllmann
2024-05-02 11:09                                                                   ` Eli Zaretskii
2024-05-02 12:01                                                                     ` Gerd Möllmann
2024-05-02 12:10                                                                       ` Eli Zaretskii
2024-05-02 12:30                                                                         ` Gerd Möllmann
2024-05-02 13:25                                                                           ` Po Lu
2024-05-02 14:01                                                                             ` Gerd Möllmann
2024-05-02 15:02                                                                               ` Eli Zaretskii
2024-05-02 15:37                                                                                 ` Gerd Möllmann
2024-05-02 16:09                                                                                   ` Eli Zaretskii
2024-05-02 19:08                                                                                     ` Gerd Möllmann
2024-05-03  7:03                                                                                       ` Eli Zaretskii
2024-05-03  7:30                                                                                         ` Gerd Möllmann
2024-05-03 11:18                                                                                           ` Helmut Eller
2024-05-03 11:29                                                                                             ` Eli Zaretskii
2024-05-03 11:49                                                                                               ` Gerd Möllmann
2024-05-03 12:01                                                                                                 ` Eli Zaretskii
2024-05-03 12:21                                                                                                   ` Gerd Möllmann
2024-05-03 13:39                                                                                                     ` Eli Zaretskii
2024-05-03 11:47                                                                                             ` Gerd Möllmann
2024-05-02 15:12                                                                           ` Eli Zaretskii
2024-05-02 15:55                                                                             ` Gerd Möllmann
2024-05-02 16:45                                                                               ` Eli Zaretskii
2024-05-02 19:10                                                                                 ` Gerd Möllmann
2024-05-02 15:09                                                                 ` Helmut Eller
2024-05-02 15:46                                                                   ` Gerd Möllmann
2024-05-02 16:03                                                                     ` Helmut Eller
2024-05-02 16:48                                                                       ` Eli Zaretskii
2024-05-02 18:30                                                                       ` Gerd Möllmann
2024-05-02 18:46                                                                       ` Eli Zaretskii
2024-05-02 19:01                                                                         ` Eli Zaretskii
2024-05-02 19:19                                                                           ` Gerd Möllmann
2024-05-02 19:51                                                                           ` Gerd Möllmann
2024-05-03  5:27                                                                             ` Eli Zaretskii
2024-05-03  5:44                                                                               ` Gerd Möllmann
2024-05-02 19:18                                                                         ` Gerd Möllmann
2024-05-02 18:49                                                                       ` Eli Zaretskii
2024-05-03  5:32                                                                         ` Gerd Möllmann
2024-05-03  6:26                                                                         ` MPS: GUI test automation (was: MPS: staticpro everything) Helmut Eller
2024-05-03  7:17                                                                           ` Eli Zaretskii
2024-05-03  7:18                                                                           ` MPS: GUI test automation Gerd Möllmann
2024-05-02 16:24                                                                   ` MPS: staticpro everything Eli Zaretskii
2024-05-01  6:05                                                   ` Gerd Möllmann
2024-05-01  7:32                                                     ` Helmut Eller
2024-05-01  7:46                                                       ` Gerd Möllmann
2024-05-01  8:03                                                         ` Gerd Möllmann
2024-05-01  8:25                                                           ` Helmut Eller
2024-05-01  8:48                                                             ` Gerd Möllmann
2024-05-01  9:42                                                               ` Helmut Eller
2024-05-01 12:24                                                               ` Eli Zaretskii
2024-05-01 16:45                                                           ` Helmut Eller
2024-05-01 17:02                                                             ` Gerd Möllmann
2024-05-01 13:12                                                         ` Eli Zaretskii
2024-05-01 13:54                                                           ` Gerd Möllmann
2024-05-01 12:50                                                     ` MPS GC and its implications (was: staticpro everything) Eli Zaretskii
2024-05-01 13:39                                                       ` MPS GC and its implications Gerd Möllmann
2024-05-01 14:52                                                         ` Eli Zaretskii
2024-05-01 15:51                                                           ` Gerd Möllmann
2024-05-01 16:48                                                             ` Eli Zaretskii
2024-05-01 17:17                                                               ` Gerd Möllmann
2024-05-01 17:52                                                                 ` Eli Zaretskii
2024-05-01 13:43                                                       ` Helmut Eller
2024-05-01 14:05                                                         ` Gerd Möllmann
2024-05-01 14:58                                                           ` Eli Zaretskii
2024-05-01 15:54                                                             ` Gerd Möllmann
2024-05-01 16:49                                                               ` Eli Zaretskii
2024-05-01 17:19                                                                 ` Gerd Möllmann
2024-05-01 17:38                                                                   ` Helmut Eller
2024-05-01 17:56                                                                     ` Eli Zaretskii
2024-05-01 18:01                                                                       ` Helmut Eller
2024-05-01 18:07                                                                         ` Gerd Möllmann
2024-05-01 18:24                                                                           ` Eli Zaretskii
2024-05-01 18:41                                                                           ` Helmut Eller
2024-05-01 19:12                                                                             ` Gerd Möllmann
2024-05-02  6:03                                                                               ` Eli Zaretskii
2024-05-01 18:23                                                                         ` Eli Zaretskii
2024-05-01 17:53                                                                   ` Eli Zaretskii
2024-05-01 17:59                                                                     ` Gerd Möllmann
2024-05-01 18:20                                                                       ` Eli Zaretskii
2024-05-01 19:06                                                                         ` Gerd Möllmann
2024-05-02  8:30                                                                           ` Eli Zaretskii
2024-05-02  9:05                                                                             ` Gerd Möllmann
2024-05-02 21:25                                                         ` Andrea Corallo
2024-05-03  5:42                                                           ` Gerd Möllmann
2024-05-03 11:18                                                             ` Eli Zaretskii
2024-05-03 11:32                                                               ` Helmut Eller
2024-05-03 11:54                                                                 ` Eli Zaretskii
2024-05-03 11:59                                                                   ` Gerd Möllmann
2024-05-03 12:05                                                                     ` Eli Zaretskii
2024-05-03 12:27                                                                       ` Gerd Möllmann
2024-05-03 13:44                                                                         ` Andrea Corallo
2024-05-03 14:22                                                                           ` Gerd Möllmann
2024-05-03 12:28                                                                   ` Helmut Eller
2024-05-03 13:33                                                                     ` Eli Zaretskii
2024-05-03 13:57                                                                       ` Helmut Eller
2024-05-03 15:56                                                                         ` Eli Zaretskii
2024-05-03 19:18                                                                           ` Eli Zaretskii
2024-05-04  4:22                                                                             ` Helmut Eller
2024-05-04  7:43                                                                               ` Eli Zaretskii
2024-05-04  7:57                                                                                 ` Gerd Möllmann
2024-05-04  9:01                                                                                   ` Eli Zaretskii
2024-05-04  9:39                                                                                 ` Helmut Eller
2024-05-04  9:56                                                                                   ` Mattias Engdegård
2024-05-04 10:07                                                                                     ` Helmut Eller
2024-05-04 10:29                                                                                       ` Mattias Engdegård
2024-05-04 12:34                                                                                   ` Eli Zaretskii
2024-05-04 16:08                                                                                     ` Helmut Eller
2024-05-04 18:02                                                                                       ` Gerd Möllmann
2024-05-03 11:54                                                                 ` Gerd Möllmann
2024-05-03 13:40                                                             ` Andrea Corallo
2024-05-03 13:48                                                               ` Gerd Möllmann
2024-05-04  6:25                                                                 ` Andrea Corallo
2024-05-04  8:00                                                                   ` Eli Zaretskii
2024-04-30 11:35                                             ` MPS: face-cache Eli Zaretskii
2024-04-30 12:57                                               ` Gerd Möllmann
2024-04-30 13:17                                                 ` Eli Zaretskii
2024-04-30 13:43                                                   ` Gerd Möllmann
2024-04-30 11:09                                         ` Eli Zaretskii
2024-04-30 12:41                                           ` Gerd Möllmann
2024-05-02  9:49                                             ` Eli Zaretskii
2024-05-02 10:39                                               ` Gerd Möllmann
2024-05-02 15:10                                                 ` Helmut Eller
2024-05-02 18:28                                                   ` MPS: pdump Gerd Möllmann
2024-05-02 19:13                                                     ` Eli Zaretskii
2024-05-02 19:45                                                       ` Gerd Möllmann
2024-05-03  6:29                                                         ` Eli Zaretskii
2024-05-03  7:15                                                           ` Gerd Möllmann
2024-05-03 11:24                                                             ` Eli Zaretskii
2024-05-03 11:55                                                               ` Gerd Möllmann
2024-05-03 12:03                                                                 ` Eli Zaretskii
2024-05-03 12:23                                                                   ` Gerd Möllmann
2024-05-03  5:54                                                     ` Helmut Eller
2024-05-03  6:18                                                       ` Gerd Möllmann
2024-05-03  7:28                                                       ` Eli Zaretskii
2024-04-29 19:37                                     ` MPS: face-cache Helmut Eller
2024-04-29 19:39                                       ` Gerd Möllmann
2024-04-30 11:11                                       ` Eli Zaretskii
2024-04-30 12:42                                         ` Gerd Möllmann
2024-04-28 14:07                             ` Eli Zaretskii
2024-04-28 14:31                               ` Gerd Möllmann
2024-04-28  7:36         ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86a5leuigi.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=eller.helmut@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=gerd.moellmann@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.