From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Kai Ma Newsgroups: gmane.emacs.bugs Subject: bug#59794: 29.0.60; NSport segfaults when a fullscreen frame is being closed) Date: Sun, 4 Dec 2022 20:45:12 +0800 Message-ID: <0137C1CC-0AEC-4790-85E6-D1AD987A63E1@gmail.com> References: <835yerd5gb.fsf@gnu.org> <87ilirr0uq.fsf@yahoo.com> <83ilirbh68.fsf@gnu.org> <87a643qt09.fsf@yahoo.com> <838rjnbbqc.fsf@gnu.org> Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.200.110.1.12\)) Content-Type: multipart/mixed; boundary="Apple-Mail=_0122B42D-4C90-489B-AFCC-B203227A0E9E" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12604"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Po Lu , Gerd =?UTF-8?Q?M=C3=B6llmann?= , 59794@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Dec 04 13:46:33 2022 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 1p1oO8-00036e-Ip for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 04 Dec 2022 13:46:32 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p1oNl-00012e-P0; Sun, 04 Dec 2022 07:46:09 -0500 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 1p1oNf-000118-9J for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2022 07:46:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p1oNe-0007q1-Rq for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2022 07:46:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1p1oNe-0007Yl-CR for bug-gnu-emacs@gnu.org; Sun, 04 Dec 2022 07:46:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Kai Ma Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 04 Dec 2022 12:46:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59794 X-GNU-PR-Package: emacs Original-Received: via spool by 59794-submit@debbugs.gnu.org id=B59794.167015793929052 (code B ref 59794); Sun, 04 Dec 2022 12:46:02 +0000 Original-Received: (at 59794) by debbugs.gnu.org; 4 Dec 2022 12:45:39 +0000 Original-Received: from localhost ([127.0.0.1]:57404 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p1oNG-0007YW-KJ for submit@debbugs.gnu.org; Sun, 04 Dec 2022 07:45:38 -0500 Original-Received: from mail-pj1-f66.google.com ([209.85.216.66]:35746) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p1oNC-0007YQ-CE for 59794@debbugs.gnu.org; Sun, 04 Dec 2022 07:45:37 -0500 Original-Received: by mail-pj1-f66.google.com with SMTP id w4-20020a17090ac98400b002186f5d7a4cso12448872pjt.0 for <59794@debbugs.gnu.org>; Sun, 04 Dec 2022 04:45:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=taSXNu2nrvSMzB6S5jJQPkQWpgnmU0gPvLzp6bn13Qw=; b=UROvwCFhpq1apddCqMDogPUQnuaanjPqcr3qLZDc6quiFwZLsp9OYloaHyMPJIXoAW uCBsxxr+a84tYBe799THc+bwaiH4FhZCgiCj583rxbnNo+C+w8lSOownX2h+MSyfhlqZ 9LHp0fr3NEXijIACpuuofIoIoavIpmdyuAbdS7AeZb9xfEYkOwWM74f9Oogl5h6buj8/ HLebTbls+udGV3gzBFClcYuc6Xrcj/2OOfnIQWZZetmj1sdkTFHA5D87VJ31ETV/CTz8 4LmKvahHl4ZtSpVh7p8nHn7+8PEx4PggNkupXNQAY00jHwEKT5/YNZ+VvU/1jvQJ20VY b0Og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=taSXNu2nrvSMzB6S5jJQPkQWpgnmU0gPvLzp6bn13Qw=; b=d365kKqJk7/jLA974a1FUJ508X+R9E6S5YYFxRYJk9qgUXK7QjItz43+TNd2qtUKOB 2GtOPiUJXNslDNXflHsXDvBoDovcSIscaecp7lF+5t7Hlqov1k1qsLnkfjxy99+Uzg92 sl8XHc8f3FZdkayMFXL7zZkS/AZMzz71CX7lE+Bi3gSHdzEDeT6wq9cWKfPjdsFb1VjN DPWjBE+jSVzA8p1e8QzeqRo9q722/WycejU5ey6MrF7yogYtyCwLO1Sl5AE8zIzkQ3WJ xtkVnVOpEXpKqW5d7+rOBGuAsYkmuwWCzJdg0jffWznX9Q9oJfX6PYsxsOqEmesIeEDG IJ1g== X-Gm-Message-State: ANoB5pkpUobmN1dI+T1/17ktH2ul5bggVu6cojoRSQWqVldf+iuVXpK6 wCuNI+r5FVwjgc/c1hXSuFg= X-Google-Smtp-Source: AA0mqf6fQX4bL2hy8mscoFh9jHSQVGtvJ93JxaemSg0S7HKkOahv/L7GOrKtMIOACLcJVYwIxXm+iw== X-Received: by 2002:a17:902:e807:b0:188:f6b7:bbf8 with SMTP id u7-20020a170902e80700b00188f6b7bbf8mr61681534plg.112.1670157928211; Sun, 04 Dec 2022 04:45:28 -0800 (PST) Original-Received: from smtpclient.apple (n058153170106.netvigator.com. [58.153.170.106]) by smtp.gmail.com with ESMTPSA id j10-20020a170902c3ca00b001869f2120absm8688452plj.294.2022.12.04.04.45.25 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 04 Dec 2022 04:45:27 -0800 (PST) In-Reply-To: <838rjnbbqc.fsf@gnu.org> X-Mailer: Apple Mail (2.3731.200.110.1.12) 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:249931 Archived-At: --Apple-Mail=_0122B42D-4C90-489B-AFCC-B203227A0E9E Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii > On Dec 4, 2022, at 20:21, Eli Zaretskii wrote: >> 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. > > Will do, thanks. I took a few liberties here. Attached is the revised patch. --Apple-Mail=_0122B42D-4C90-489B-AFCC-B203227A0E9E Content-Disposition: attachment; filename=0001-Prevent-a-segfault-when-deleting-a-fullscreen-frame-.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Prevent-a-segfault-when-deleting-a-fullscreen-frame-.patch" Content-Transfer-Encoding: quoted-printable =46rom=203ea07d5375671b052b717c0523f3e145ef7cc5a2=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Kai=20Ma=20=0ADate:=20= Sat,=203=20Dec=202022=2018:17:26=20+0800=0ASubject:=20[PATCH]=20Prevent=20= a=20segfault=20when=20deleting=20a=20fullscreen=20frame=20on=0A=20= NextStep.=0A=0A*=20nsterm.m=20([EmacsView=20resetCursorRects:]):=20Be=20= defensive=20when=0Aaccessing=20FRAME_OUTPUT_DATA.=0A---=0A=20= src/nsterm.m=20|=2014=20++++++++++++--=0A=201=20file=20changed,=2012=20= insertions(+),=202=20deletions(-)=0A=0Adiff=20--git=20a/src/nsterm.m=20= b/src/nsterm.m=0Aindex=20507f2a9e7d..f99d7cde3c=20100644=0A---=20= a/src/nsterm.m=0A+++=20b/src/nsterm.m=0A@@=20-6703,8=20+6703,18=20@@=20-=20= (BOOL)acceptsFirstResponder=0A=20=0A=20-=20(void)resetCursorRects=0A=20{=0A= -=20=20NSRect=20visible=20=3D=20[self=20visibleRect];=0A-=20=20NSCursor=20= *currentCursor=20=3D=20FRAME_POINTER_TYPE=20(emacsframe);=0A+=20=20= NSRect=20visible;=0A+=20=20NSCursor=20*currentCursor;=0A+=0A+=20=20/*=20= FIXME:=20[resetCursorRects:]=20can=20be=20called=20from=20the=20event=20= loop=0A+=20=20=20=20=20after=20the=20frame=20is=20deleted.=20=20When=20= this=20happens,=0A+=20=20=20=20=20emacsframe->output_data=20is=20NULL.=20= =20This=20means=20there=20is=20an=0A+=20=20=20=20=20underlying=20leak=20= of=20the=20EmacsView=20object!=20=20(bug#59794)=20*/=0A+=20=20if=20(!=20= emacsframe=20||=20!=20FRAME_OUTPUT_DATA=20(emacsframe))=0A+=20=20=20=20= return;=0A+=0A+=20=20visible=20=3D=20[self=20visibleRect];=0A+=20=20= currentCursor=20=3D=20FRAME_POINTER_TYPE=20(emacsframe);=0A=20=20=20= NSTRACE=20("[EmacsView=20resetCursorRects]");=0A=20=0A=20=20=20if=20= (currentCursor=20=3D=3D=20nil)=0A--=20=0A2.37.1=20(Apple=20Git-137.1)=0A=0A= --Apple-Mail=_0122B42D-4C90-489B-AFCC-B203227A0E9E Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii --Apple-Mail=_0122B42D-4C90-489B-AFCC-B203227A0E9E--