From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?Q?=E5=BC=A0=E4=BA=91=E5=B3=B0?= Newsgroups: gmane.emacs.bugs Subject: bug#65198: 29.1; Emacs29.1 crash in function face_for_font Date: Fri, 11 Aug 2023 08:50:04 +0800 Message-ID: References: <83r0obi53o.fsf@gnu.org> <83bkfeizgz.fsf@gnu.org> <831qgaiw2d.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="13496"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 65198@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri Aug 11 02:51:25 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qUGNB-0003IY-Hd for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 11 Aug 2023 02:51:25 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qUGMx-0001xM-LW; Thu, 10 Aug 2023 20:51:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qUGMq-0001vV-F1 for bug-gnu-emacs@gnu.org; Thu, 10 Aug 2023 20:51:04 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qUGMo-0007O4-EG for bug-gnu-emacs@gnu.org; Thu, 10 Aug 2023 20:51:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qUGMn-0007Ie-Vu for bug-gnu-emacs@gnu.org; Thu, 10 Aug 2023 20:51:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: =?UTF-8?Q?=E5=BC=A0=E4=BA=91=E5=B3=B0?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 11 Aug 2023 00:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 65198 X-GNU-PR-Package: emacs Original-Received: via spool by 65198-submit@debbugs.gnu.org id=B65198.169171502528017 (code B ref 65198); Fri, 11 Aug 2023 00:51:01 +0000 Original-Received: (at 65198) by debbugs.gnu.org; 11 Aug 2023 00:50:25 +0000 Original-Received: from localhost ([127.0.0.1]:44318 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUGMC-0007Ho-7Z for submit@debbugs.gnu.org; Thu, 10 Aug 2023 20:50:25 -0400 Original-Received: from mail-qt1-x82c.google.com ([2607:f8b0:4864:20::82c]:56482) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qUGM9-0007HZ-09 for 65198@debbugs.gnu.org; Thu, 10 Aug 2023 20:50:23 -0400 Original-Received: by mail-qt1-x82c.google.com with SMTP id d75a77b69052e-40ffbc3488eso9594501cf.0 for <65198@debbugs.gnu.org>; Thu, 10 Aug 2023 17:50:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691715015; x=1692319815; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=WF4wR3w8kWy0+SfttlSGArJQ9inWSxklYtG8QTxY5Kg=; b=i1VyH7s/2kvtmP/FYyu1i2MEtkW0SV/RaO4h7aYPv8kjPZ5Hlc69jrny8M1BLQ//9z b7psaYm3NH75sPNQ68DmfKn5DR7QeqZ8PQMPihG5nBkKvf2lzkqHONmwRput/p1SIpPe jJhohYukG2CtWa7uBdNuIg1fzKcSfRyL9oUjtZOzs76XJnyLI07b5il1CTsBPpfQBtT0 ID2SZykr0OCNoVaXYchh62875ONhBZ1JQZlQpQy2RwDtlHDcw7OPo55vUu2JjwTxTe33 gnsVsEfZo00Uyry5nNjvuQPuC/oGe+Ndcig+n8H+oUeqBnVQkwmAvN+bBoFH5TyF0zFW 8Rmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691715015; x=1692319815; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WF4wR3w8kWy0+SfttlSGArJQ9inWSxklYtG8QTxY5Kg=; b=LTy8H6c+7ZiXhQtxyQmf1HwRd5lZHvPixEYDlBuIwvn+4KG/J77qxd4ZckHjipQIC1 sKSt2a27Dx4w3qD7aLxAwUInQSn2V2FxQ27V8eSPR5nusFYLFXo1b6g9GfTVFC8DbuF5 hae/lwfm4+fMz4I7dtXPy0p90Htb0TVw8S6HF6Wa6wnzSmn52TAfw3cG681M3UqfrLEH fJvdRotvu9iy0BJjg3b/KQIyOnCb3zm+Ao1Tms6H1Aqj6ajJsOPwiBdfU9SD3TcBluY9 lJOtQdMwVwjay4mDhWbsegj3jDIhr6FnudHvDO5l51BBYlT7SxrTMHl3lg3eDzUYQbje BFzg== X-Gm-Message-State: AOJu0YwtBVIjMy3ktypRleiLzg8q+vzWWajChVUUDUpyyAbvBMjsXUpD 889meVjjrx28XnWwxmT8gmbmDpz/60ZfsLWvb2Mv0Y2v4LUmn1+h X-Google-Smtp-Source: AGHT+IFc9pFkkpvrIizcx/pEaAtFAr8cQivFvKX+Rc6N51r674YyAG15xWyJ4IZr/i8J/EorAtQcfh+gyBAadkhCdLs= X-Received: by 2002:a05:622a:178f:b0:403:fb43:bcb0 with SMTP id s15-20020a05622a178f00b00403fb43bcb0mr381781qtk.46.1691715015291; Thu, 10 Aug 2023 17:50:15 -0700 (PDT) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:267175 Archived-At: more clear GDB info: Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. 0x0000555555618c06 in produce_glyphless_glyph (it=3D0x7fffffff67d0, for_no_font=3Dfor_no_font@entry=3Dfalse, acronym=3Dacronym@entry=3D0x0) at xdisp.c:31791 31791 font =3D face->font ? face->font : FRAME_FONT (it->f); (gdb) bt #0 0x0000555555618c06 in produce_glyphless_glyph (it=3D0x7fffffff67d0, for_no_font=3Dfor_no_font@entry=3Dfalse, acronym=3Dacronym@entry=3D0x0) at xdisp.c:31791 #1 0x000055555563f321 in gui_produce_glyphs (it=3D0x7fffffff67d0) at xdisp.c:32639 #2 0x00005555556232e5 in move_it_in_display_line_to (it=3Dit@entry=3D0x7fffffff67d0, to_charpos=3Dto_charpos@entry=3D382, to_x=3Dto_x@entry=3D2147483647, op=3Dop@entry=3D(MOVE_TO_X | MOVE_TO_POS)) at xdisp.c:9906 #3 0x000055555562859a in move_it_to (it=3D0x7fffffff67d0, to_charpos=3D382, to_x=3D, to_y=3D, to_vpos=3D, op=3D11) at xdisp.c:10505 #4 0x000055555563d3ae in window_text_pixel_size (window=3D, from=3D, to=3D= , x_limit=3D0x1c9a, y_limit=3D, mode_lines=3D0x0, ignore_line_at_end=3D0x0) at xdisp.c:11460 #5 0x000055555563e046 in Fwindow_text_pixel_size (window=3D0x555556296d25, from=3D0x0, to=3D0x0, x_limit=3D0x1c9a, y_limit=3D0xc32, mode_lines=3D0x0, ignore_line_at_end=3D0x0) at xdisp.c:11634 #6 0x00007fffe7dc07a8 in F6669742d6672616d652d746f2d6275666665722d31_fit_frame_to_buffer_1_0 () at /home/zayfen/github.com/emacs/src/../native-lisp/29.1.50-24bd8136/pr= eloaded/window-0d1b8b93-6f4eee58.eln #7 0x00005555557650c2 in funcall_subr (subr=3D0x7fffe8360178, numargs=3D5, args=3D) at eval.c:3049 #8 0x0000555555761d93 in Ffuncall (nargs=3D6, args=3D0x7fffffff9570) at ev= al.c:2995 #9 0x0000555555765a3d in eval_sub (form=3D) at eval.c:2470 #10 0x0000555555767ddd in Fprogn (body=3D0x0) at eval.c:436 #11 FletX (args=3D0x55555af1ff63) at eval.c:958 #12 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #13 0x0000555555766ded in Fprogn (body=3D0x0) at eval.c:436 #14 funcall_lambda (fun=3D0x55555af1fe93, nargs=3D3, arg_vector=3D0x7fffffff9830) at eval.c:3233 #15 0x000055555576739f in apply_lambda (fun=3D, args=3D, count=3D...) at eval.c:3103 #16 0x000055555576550b in eval_sub (form=3D) at eval.c:2588 #17 0x0000555555767ddd in Fprogn (body=3D0x555559f14b83) at eval.c:436 #18 FletX (args=3D0x555559f15073) at eval.c:958 #19 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #20 0x0000555555766ded in Fprogn (body=3D0x0) at eval.c:436 #21 funcall_lambda (fun=3D0x555559f13a93, nargs=3D0, arg_vector=3D0x7fffffff9b40) at eval.c:3233 --Type for more, q to quit, c to continue without paging-- #22 0x000055555576739f in apply_lambda (fun=3D, args=3D, count=3D...) at eval.c:3103 #23 0x000055555576550b in eval_sub (form=3D) at eval.c:2588 #24 0x00005555557679c5 in Fprogn (body=3D0x0) at eval.c:436 #25 Flet (args=3D) at eval.c:1026 #26 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #27 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #28 0x0000555555767ddd in Fprogn (body=3D0x0) at eval.c:436 #29 FletX (args=3D0x555559f15d73) at eval.c:958 #30 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #31 0x0000555555765f4d in Fprogn (body=3D0x0) at eval.c:436 #32 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #33 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #34 0x0000555555766ded in Fprogn (body=3D0x0) at eval.c:436 #35 funcall_lambda (fun=3D0x555559f15b63, nargs=3D1, arg_vector=3D0x7fffffffa1e0) at eval.c:3233 #36 0x000055555576739f in apply_lambda (fun=3D, args=3D, count=3D...) at eval.c:3103 #37 0x000055555576550b in eval_sub (form=3D) at eval.c:2588 #38 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #39 0x0000555555765f4d in Fprogn (body=3D0x0) at eval.c:436 #40 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #41 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #42 0x0000555555767ddd in Fprogn (body=3D0x0) at eval.c:436 #43 FletX (args=3D0x55555aa10d93) at eval.c:958 #44 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #45 0x0000555555765f4d in Fprogn (body=3D0x0, body@entry=3D0x55555aa10d63) at eval.c:436 #46 0x0000555555751d6c in Fsave_current_buffer (args=3D0x55555aa10d63) at editfns.c:874 #47 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #48 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #49 0x0000555555767ddd in Fprogn (body=3D0x0) at eval.c:436 #50 FletX (args=3D0x55555aa10ce3) at eval.c:958 #51 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #52 0x0000555555767ddd in Fprogn (body=3D0x0) at eval.c:436 #53 FletX (args=3D0x55555aa10cb3) at eval.c:958 #54 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #55 0x0000555555766ded in Fprogn (body=3D0x0) at eval.c:436 #56 funcall_lambda (fun=3D0x55555aa10b93, nargs=3D2, arg_vector=3D0x7fffffffab80) at eval.c:3233 #57 0x000055555576739f in apply_lambda (fun=3D, args=3D, count=3D...) at eval.c:3103 #58 0x000055555576550b in eval_sub (form=3D) at eval.c:2588 #59 0x00005555557685cb in Feval (form=3D0x5555591dcf83, lexical=3D) at eval.c:2361 #60 0x0000555555765d23 in eval_sub (form=3D) at eval.c:2501 #61 0x0000555555766ded in Fprogn (body=3D0x55555a5f1ee3) at eval.c:436 #62 funcall_lambda (fun=3D0x55555a5f1a73, nargs=3D1, arg_vector=3D0x7fffffffaed8) at eval.c:3233 #63 0x0000555555761d93 in Ffuncall (nargs=3D2, args=3D0x7fffffffaed0) at ev= al.c:2995 #64 0x0000555555762282 in Fapply (nargs=3D2, args=3D0x7fffffffaed0) at eval= .c:2623 #65 0x0000555555765a3d in eval_sub (form=3D) at eval.c:2470 #66 0x0000555555767c26 in FletX (args=3D0x55555bdb6543) at /home/zayfen/github.com/emacs/src/lisp.h:1529 #67 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #68 0x0000555555768379 in internal_lisp_condition_case (var=3D, bodyform=3D, handlers=3D) at eval.c:1428 #69 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 #70 0x000055555576688d in Fprogn (body=3D0x0) at eval.c:436 #71 Fcond (args=3D) at eval.c:416 #72 0x0000555555765be8 in eval_sub (form=3D) at eval.c:2449 =E5=BC=A0=E4=BA=91=E5=B3=B0 =E4=BA=8E2023=E5= =B9=B48=E6=9C=8811=E6=97=A5=E5=91=A8=E4=BA=94 08:15=E5=86=99=E9=81=93=EF=BC= =9A > > I've tested this patch, unfortunately, it doesn't work, still crashes > > GDB information: > Thread 1 "emacs" received signal SIGSEGV, Segmentation fault. > 0x0000555555619516 in produce_glyphless_glyph () > (gdb) bt > #0 0x0000555555619516 in produce_glyphless_glyph () > #1 0x0000555555640789 in gui_produce_glyphs () > #2 0x0000555555623f70 in move_it_in_display_line_to () > #3 0x000055555562935a in move_it_to () > #4 0x000055555563e84f in window_text_pixel_size () > #5 0x000055555563f526 in Fwindow_text_pixel_size () > #6 0x00007fffe7dc07a8 in > F6669742d6672616d652d746f2d6275666665722d31_fit_frame_to_buffer_1_0 () > at /home/zayfen/github.com/emacs/src/../native-lisp/29.1.50-9e9f496f/= preloaded/window-0d1b8b93-6f4eee58.eln > #7 0x000055555576a032 in funcall_subr () > #8 0x0000555555766ba1 in Ffuncall () > #9 0x000055555576aa04 in eval_sub () > #10 0x000055555576ce6d in FletX () > #11 0x000055555576aba7 in eval_sub () > #12 0x000055555576be0d in funcall_lambda () > #13 0x000055555576c3ee in apply_lambda () > #14 0x000055555576a49b in eval_sub () > #15 0x000055555576ce6d in FletX () > #16 0x000055555576aba7 in eval_sub () > #17 0x000055555576be0d in funcall_lambda () > #18 0x000055555576c3ee in apply_lambda () > #19 0x000055555576a49b in eval_sub () > #20 0x000055555576ca2d in Flet () > #21 0x000055555576aba7 in eval_sub () > #22 0x000055555576aba7 in eval_sub () > #23 0x000055555576ce6d in FletX () > #24 0x000055555576aba7 in eval_sub () > #25 0x000055555576af0d in Fprogn () > #26 0x000055555576aba7 in eval_sub () > #27 0x000055555576aba7 in eval_sub () > #28 0x000055555576be0d in funcall_lambda () > #29 0x000055555576c3ee in apply_lambda () > #30 0x000055555576a49b in eval_sub () > #31 0x000055555576aba7 in eval_sub () > #32 0x000055555576af0d in Fprogn () > #33 0x000055555576aba7 in eval_sub () > #34 0x000055555576aba7 in eval_sub () > #35 0x000055555576ce6d in FletX () > #36 0x000055555576aba7 in eval_sub () > #37 0x000055555576af0d in Fprogn () > #38 0x000055555575666c in Fsave_current_buffer () > #39 0x000055555576aba7 in eval_sub () > #40 0x000055555576aba7 in eval_sub () > #41 0x000055555576ce6d in FletX () > #42 0x000055555576aba7 in eval_sub () > #43 0x000055555576ce6d in FletX () > #44 0x000055555576aba7 in eval_sub () > #45 0x000055555576be0d in funcall_lambda () > #46 0x000055555576c3ee in apply_lambda () > #47 0x000055555576a49b in eval_sub () > #48 0x000055555576d66b in Feval () > #49 0x000055555576ace1 in eval_sub () > > Eli Zaretskii =E4=BA=8E2023=E5=B9=B48=E6=9C=8811=E6=97=A5= =E5=91=A8=E4=BA=94 02:36=E5=86=99=E9=81=93=EF=BC=9A > > > > > From: =E5=BC=A0=E4=BA=91=E5=B3=B0 > > > Date: Fri, 11 Aug 2023 01:58:34 +0800 > > > Cc: 65198@debbugs.gnu.org > > > > > > 2023-08-11_01-53.png > > > when popup frame has the warning-icon (marked in picture) , emacs wil= l crash immediately. > > > > Can you try the patch below and see if it prevents the crash in these > > cases? > > > > diff --git a/src/xdisp.c b/src/xdisp.c > > index 9cddcfe..b25bdc7 100644 > > --- a/src/xdisp.c > > +++ b/src/xdisp.c > > @@ -8312,9 +8312,14 @@ get_next_display_element (struct it *it) > > && success_p > > && FRAME_WINDOW_P (it->f)) > > { > > - struct face *face =3D FACE_FROM_ID (it->f, it->face_id); > > + struct face *face =3D FACE_FROM_ID_OR_NULL (it->f, it->face_id); > > > > - if (it->what =3D=3D IT_COMPOSITION && it->cmp_it.ch >=3D 0) > > + if (!face) > > + { > > + it->what =3D IT_GLYPHLESS; > > + it->glyphless_method =3D GLYPHLESS_DISPLAY_EMPTY_BOX; > > + } > > + else if (it->what =3D=3D IT_COMPOSITION && it->cmp_it.ch >=3D 0) > > { > > /* Automatic composition with glyph-string. */ > > Lisp_Object gstring =3D composition_gstring_from_id (it->cmp_= it.id);