Subject: bug#56259: closed (Re: bug#58540: 29.0.50; While opening the font dialog)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 12 Nov 2022 20:58:05 +0000

Your bug report

#56259: 29.0.50; Illegal -layoutSubtreeIfNeeded on NS

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
56259: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=56259
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#58540: 29.0.50; While opening the font dialog
From: Stefan Kangas <[email-masked]>
To: Daniel Martín <[email-masked]>
Cc: Gerd Möllmann <[email-masked]>, [email-masked], [email-masked]
Date: Sat, 12 Nov 2022 12:57:28 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Daniel Martín <[email-masked]> writes:

> tags 56259 notabug
> close 56259
> quit
>
> I think the general consensus was that this message is a bug in some
> Apple framework and not in Emacs, so I'm closing the bug report.

The bug was left open, so I'm closing it now.

Subject: 29.0.50; Illegal -layoutSubtreeIfNeeded on NS
From: Gerd Möllmann <[email-masked]>
To: [email-masked]
Date: Mon, 27 Jun 2022 16:22:31 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

On macOS 12.4, selecting Options -> Set Default Font from the menu bar 
reproducibly prints a message to the terminal:

emacs[76309:7042282] It's not legal to call -layoutSubtreeIfNeeded on
a view which is already being laid out.  If you are implementing the
view's -layout method, you can call -[super layout] instead. Break on
void _NSDetectedLayoutRecursion(void) to debug.  This will be logged
only once.  This may break in the future.

Hopefully nobody get's sued because of that illegal action...

Backtrace from lldb:

 * frame #0: 0x000000019e2f5f40 AppKit`_NSDetectedLayoutRecursion
    frame #1: 0x000000019dac4148 AppKit`-[NSWindow(NSConstraintBasedLayout) _layoutViewTree] + 148
    frame #2: 0x000000019dac11d0 AppKit`-[NSWindow _oldPlaceWindow:fromServer:] + 584
    frame #3: 0x000000019dac0050 AppKit`-[NSWindow _setFrameCommon:display:fromServer:] + 2220
    frame #4: 0x000000019db854cc AppKit`-[NSThemeFrame _growWindowReshapeContentAndToolbarView:withOldToolbarFrameSize:animate:] + 1232
    frame #5: 0x000000019db84ddc AppKit`-[NSThemeFrame _reshapeContentAndToolbarView:withOldToolbarFrameSize:resizeWindow:animate:] + 300
    frame #6: 0x000000019db738bc AppKit`-[NSThemeFrame _toolbarFrameSizeChanged:oldSize:] + 76
    frame #7: 0x000000019db737f4 AppKit`-[NSWindow _toolbarFrameSizeChanged:oldSize:] + 96
    frame #8: 0x000000019db68870 AppKit`-[NSToolbarView _layoutDirtyItemViewersAndTileToolbar] + 428
    frame #9: 0x000000019db8b114 AppKit`-[NSToolbarView layout] + 88
    frame #10: 0x000000019dac5700 AppKit`_NSViewLayout + 688
    frame #11: 0x000000019dac5178 AppKit`-[NSView _layoutSubtreeWithOldSize:] + 380
    frame #12: 0x000000019dac52e4 AppKit`-[NSView _layoutSubtreeWithOldSize:] + 744
    frame #13: 0x000000019dac52e4 AppKit`-[NSView _layoutSubtreeWithOldSize:] + 744
    frame #14: 0x000000019dac52e4 AppKit`-[NSView _layoutSubtreeWithOldSize:] + 744
    frame #15: 0x000000019dac4600 AppKit`-[NSView _layoutSubtreeIfNeededAndAllowTemporaryEngine:] + 996
    frame #16: 0x000000019dac4148 AppKit`-[NSWindow(NSConstraintBasedLayout) _layoutViewTree] + 148
    frame #17: 0x000000019db3b8ec AppKit`-[NSWindow(NSConstraintBasedLayout) layoutIfNeeded] + 308
    frame #18: 0x000000019dba7388 AppKit`-[NSWindow _setUpFirstResponderBeforeBecomingVisible] + 84
    frame #19: 0x000000019dba6750 AppKit`-[NSWindow _doWindowWillBeVisibleAsSheet:] + 164
    frame #20: 0x000000019dba507c AppKit`-[NSWindow _reallyDoOrderWindowAboveOrBelow:relativeTo:findKey:forCounter:force:isModal:] + 1232
    frame #21: 0x000000019dba4790 AppKit`-[NSWindow _reallyDoOrderWindow:relativeTo:findKey:forCounter:force:isModal:] + 132
    frame #22: 0x000000019dba377c AppKit`-[NSWindow _doOrderWindow:relativeTo:findKey:forCounter:force:isModal:] + 324
    frame #23: 0x000000010088d424 emacs`-[EmacsView showFontPanel](self=0x0000000108431400, _cmd="showFontPanel") at nsterm.m:6585:3
    frame #24: 0x000000010090d670 emacs`Fx_select_font(frame=0x0000000000000000, ignored=0x0000000000000000) at nsfns.m:1662:22

A related bug might be bug#53481 (status done, fixed by Alan Third).