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.
next prev 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.