GNU bug report logs -
#38031
26.3; Trying to invoke the macOS File Open window causes Emacs to crash on macOS Catalina
Previous Next
Reported by: Michael Dixon <dixius99 <at> gmail.com>
Date: Sat, 2 Nov 2019 16:11:02 UTC
Severity: normal
Found in version 26.3
Done: Alan Third <alan <at> idiocy.org>
Bug is archived. No further changes may be made.
Full log
Message #8 received at 38031 <at> debbugs.gnu.org (full text, mbox):
On Sat, Nov 02, 2019 at 06:19:27AM -0400, Michael Dixon wrote:
>
> On macOS Catalina, if I attempt to open a file using
> * File > Open
> * The toolbar button
> * "Open a File" on the splash screen
>
> Emacs crashes. I am using the Homebrew formula with GUI. I have tried
> with other Mac Emacs distributions, such as GNU Emacs for Mac OS X and
> the Homebrew emacs-plus formula with the same result.
>
> Here's the part of the macOS crash report that I think is useful:
>
> Application Specific Information:
> *** Terminating app due to uncaught exception 'NSObjectNotAvailableException',
> reason: 'EmacsSavePanel is not a supported subclass for sandboxing'
> abort() called
> terminating with uncaught exception of type NSException
That sounds suspiciously like the fact we’ve subclassed the save panel
class means it’s no longer considered ‘safe’ by Cocoa.
I suspect there’s no immediate work‐around other than trying to work
out what about EmacsSavePanel is problematic.
Can you try applying the patch below? I don’t think it’ll fix
anything, but it should at least rule out that it’s something in these
functions that’s causing this.
modified src/nsfns.m
@@ -3067,25 +3067,25 @@ The position is returned as a cons cell (X . Y) of the
}
@implementation EmacsSavePanel
-- (BOOL)performKeyEquivalent:(NSEvent *)theEvent
-{
- BOOL ret = handlePanelKeys (self, theEvent);
- if (! ret)
- ret = [super performKeyEquivalent:theEvent];
- return ret;
-}
+// - (BOOL)performKeyEquivalent:(NSEvent *)theEvent
+// {
+// BOOL ret = handlePanelKeys (self, theEvent);
+// if (! ret)
+// ret = [super performKeyEquivalent:theEvent];
+// return ret;
+// }
@end
@implementation EmacsOpenPanel
-- (BOOL)performKeyEquivalent:(NSEvent *)theEvent
-{
- // NSOpenPanel inherits NSSavePanel, so passing self is OK.
- BOOL ret = handlePanelKeys (self, theEvent);
- if (! ret)
- ret = [super performKeyEquivalent:theEvent];
- return ret;
-}
+// - (BOOL)performKeyEquivalent:(NSEvent *)theEvent
+// {
+// // NSOpenPanel inherits NSSavePanel, so passing self is OK.
+// BOOL ret = handlePanelKeys (self, theEvent);
+// if (! ret)
+// ret = [super performKeyEquivalent:theEvent];
+// return ret;
+// }
@end
--
Alan Third
This bug report was last modified 5 years and 124 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.