unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: gerd.moellmann@gmail.com, 59794@debbugs.gnu.org, justksqsf@gmail.com
Subject: bug#59794: 29.0.60; NSport segfaults when a fullscreen frame is being closed)
Date: Sun, 04 Dec 2022 19:59:34 +0800	[thread overview]
Message-ID: <87a643qt09.fsf@yahoo.com> (raw)
In-Reply-To: <83ilirbh68.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 04 Dec 2022 12:24:15 +0200")

Eli Zaretskii <eliz@gnu.org> writes:

> Why, cannot you access debbugs?

debbugs-browse-ephemeral-emacs-bug-group only included your reply to
this bug, and not the patch you replied to.  That happens once in a
while for me.

> Anyway, attached below.
>
>>From 8ea35a8099f34f482d090ea8068e89f52dcd29ac Mon Sep 17 00:00:00 2001
> From: Kai Ma <justksqsf@gmail.com>
> Date: Sat, 3 Dec 2022 18:17:26 +0800
> Subject: [PATCH] Prevent a segfault when deleting a fullscreen frame on
>  NextStep.
>
> * nsterm.m ([EmacsView resetCursorRects:]): Be defensive when
> accessing FRAME_OUTPUT_DATA.
> ---
>  src/nsterm.m | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/src/nsterm.m b/src/nsterm.m
> index 507f2a9e7d..c09f743ec7 100644
> --- a/src/nsterm.m
> +++ b/src/nsterm.m
> @@ -6703,8 +6703,16 @@ - (BOOL)acceptsFirstResponder
>  
>  - (void)resetCursorRects
>  {
> -  NSRect visible = [self visibleRect];
> -  NSCursor *currentCursor = FRAME_POINTER_TYPE (emacsframe);
> +  NSRect visible;
> +  NSCursor *currentCursor;
> +
> +  /* On macOS 13, [resetCursorRects:] could be called even after the
> +     window is closed. */
> +  if (! emacsframe || ! FRAME_OUTPUT_DATA (emacsframe))
> +    return;
> +
> +  visible = [self visibleRect];
> +  currentCursor = FRAME_POINTER_TYPE (emacsframe);
>    NSTRACE ("[EmacsView resetCursorRects]");
>  
>    if (currentCursor == nil)

Thanks.  I'm fine with installing this on the release branch, but the
comment should be modified to say:

  [resetCursorRects:] can be called from the event loop after the frame
  is deleted.  When this happens, emacsframe is NULL.  This means there
  is an underlying leak of the EmacsView object!

also, perhaps it should be omitted on master, at least until before
Emacs 30 is released, to motivate other (hopefully more knowledgeable)
people to provide the necessary information to fix it.





  reply	other threads:[~2022-12-04 11:59 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-02 12:01 bug#59794: 29.0.60; NSport segfaults when a fullscreen frame is being closed Kai Ma
2022-12-03 10:08 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-03 10:27 ` Eli Zaretskii
2022-12-03 11:44   ` Gerd Möllmann
2022-12-03 13:03     ` Kai Ma
2022-12-03 13:53       ` Gerd Möllmann
2022-12-03 20:51         ` Kai Ma
     [not found] ` <handler.59794.B.167005568724588.ack@debbugs.gnu.org>
2022-12-03 10:48   ` bug#59794: Acknowledgement (29.0.60; NSport segfaults when a fullscreen frame is being closed) Kai Ma
2022-12-04  6:54     ` bug#59794: 29.0.60; " Eli Zaretskii
2022-12-04  9:10       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-04 10:24         ` Eli Zaretskii
2022-12-04 11:59           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2022-12-04 12:21             ` Eli Zaretskii
2022-12-04 12:23               ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-04 12:45               ` Kai Ma
2022-12-04 12:53                 ` Eli Zaretskii
2022-12-04 13:53                 ` Daniel Martín via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-04 14:04                   ` Kai Ma
2022-12-05  1:10                   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-01-10 20:35 ` Steven E. Harris
2023-01-11  1:14   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-01-11  4:38     ` Gerd Möllmann
2023-01-17 21:37       ` Steven E. Harris
2023-01-18  5:06         ` Gerd Möllmann

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=87a643qt09.fsf@yahoo.com \
    --to=bug-gnu-emacs@gnu.org \
    --cc=59794@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=gerd.moellmann@gmail.com \
    --cc=justksqsf@gmail.com \
    --cc=luangruo@yahoo.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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).