AudioPluginHost crash

Hi there, JUCE team.

If you switch accounts on OS X while Audio Plugin Host is running, and the accounts have different display resolutions set, it’ll crash APH.

Date/Time:             2021-03-28 00:04:52.039 -0700
OS Version:            Mac OS X 10.15.7 (19H524)
Report Version:        12
Bridge OS Version:     5.2 (18P4347)
Anonymous UUID:        92628EAC-CA0C-8C17-7652-7724051CC45F


Time Awake Since Boot: 27000 seconds

System Integrity Protection: enabled

Crashed Thread:        0  JUCE Message Thread  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
abort() called
AudioPluginHost(3862,0x10c701dc0) malloc: *** error for object 0x1dffff8a163589: pointer being freed was not allocated
 

Thread 0 Crashed:: JUCE Message Thread  Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x00007fff6c9ed33a __pthread_kill + 10
1   libsystem_pthread.dylib       	0x00007fff6caa9e60 pthread_kill + 430
2   libsystem_c.dylib             	0x00007fff6c974808 abort + 120
3   libsystem_malloc.dylib        	0x00007fff6ca6a50b malloc_vreport + 548
4   libsystem_malloc.dylib        	0x00007fff6ca6d40f malloc_report + 151
5   com.yourcompany.SimpleEQ      	0x00000001126aa458 juce::HeapBlock<juce::Displays::Display, false>::~HeapBlock() + 24 (juce_HeapBlock.h:136)
6   com.yourcompany.SimpleEQ      	0x00000001126aa405 juce::HeapBlock<juce::Displays::Display, false>::~HeapBlock() + 21 (juce_HeapBlock.h:137)
7   com.yourcompany.SimpleEQ      	0x00000001126aa36a juce::ArrayBase<juce::Displays::Display, juce::DummyCriticalSection>::~ArrayBase() + 42 (juce_ArrayBase.h:56)
8   com.yourcompany.SimpleEQ      	0x00000001126aa335 juce::ArrayBase<juce::Displays::Display, juce::DummyCriticalSection>::~ArrayBase() + 21 (juce_ArrayBase.h:56)
9   com.yourcompany.SimpleEQ      	0x00000001126aa315 juce::Array<juce::Displays::Display, juce::DummyCriticalSection, 0>::~Array() + 21 (juce_Array.h:132)
10  com.yourcompany.SimpleEQ      	0x00000001125c52c5 juce::Array<juce::Displays::Display, juce::DummyCriticalSection, 0>::~Array() + 21 (juce_Array.h:132)
11  com.yourcompany.SimpleEQ      	0x00000001125c645c juce::Displays::refresh() + 236 (juce_Displays.cpp:203)
12  com.yourcompany.SimpleEQ      	0x00000001127efb78 juce::Displays::findDisplays(float)::$_93::operator()() const + 24 (juce_mac_Windowing.mm:504)
13  com.yourcompany.SimpleEQ      	0x00000001127efb3d decltype(std::__1::forward<juce::Displays::findDisplays(float)::$_93&>(fp)()) std::__1::__invoke<juce::Displays::findDisplays(float)::$_93&>(juce::Displays::findDisplays(float)::$_93&) + 29 (type_traits:3545)
14  com.yourcompany.SimpleEQ      	0x00000001127efaed void std::__1::__invoke_void_return_wrapper<void>::__call<juce::Displays::findDisplays(float)::$_93&>(juce::Displays::findDisplays(float)::$_93&) + 29 (__functional_base:349)
15  com.yourcompany.SimpleEQ      	0x00000001127efabd std::__1::__function::__alloc_func<juce::Displays::findDisplays(float)::$_93, std::__1::allocator<juce::Displays::findDisplays(float)::$_93>, void ()>::operator()() + 29 (functional:1546)
16  com.yourcompany.SimpleEQ      	0x00000001127ee80e std::__1::__function::__func<juce::Displays::findDisplays(float)::$_93, std::__1::allocator<juce::Displays::findDisplays(float)::$_93>, void ()>::operator()() + 30 (functional:1720)
17  com.yourcompany.SimpleEQ      	0x000000011237e675 std::__1::__function::__value_func<void ()>::operator()() const + 53 (functional:1873)
18  com.yourcompany.SimpleEQ      	0x000000011237e5f5 std::__1::function<void ()>::operator()() const + 21 (functional:2548)
19  com.yourcompany.SimpleEQ      	0x0000000112745cae juce::DisplaySettingsChangeCallback::displayReconfigurationCallback(unsigned int, unsigned int, void*) + 62 (juce_mac_Windowing.mm:457)
20  com.apple.SkyLight            	0x00007fff61a8b120 displayWillConfigNotifyProc + 555
21  com.apple.SkyLight            	0x00007fff61a80f8f CGSPostLocalNotification + 430
22  com.apple.SkyLight            	0x00007fff61a809cc (anonymous namespace)::notify_datagram_handler(unsigned int, CGSDatagramType, void*, unsigned long, void*) + 98
23  com.apple.SkyLight            	0x00007fff61a84ba2 CGSDatagramReadStream::dispatch_next_main_queue_datagram() + 242
24  com.apple.SkyLight            	0x00007fff61cb58da invocation function for block in CGSDatagramReadStream::dispatch_main_queue_datagrams_async(dispatch_queue_s*, CGSDatagramReadStream*) + 54
25  libdispatch.dylib             	0x00007fff6c84b6c4 _dispatch_call_block_and_release + 12
26  libdispatch.dylib             	0x00007fff6c84c658 _dispatch_client_callout + 8
27  libdispatch.dylib             	0x00007fff6c857cab _dispatch_main_queue_callback_4CF + 936
28  com.apple.CoreFoundation      	0x00007fff327fde81 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
29  com.apple.CoreFoundation      	0x00007fff327bdc87 __CFRunLoopRun + 2028
30  com.apple.CoreFoundation      	0x00007fff327bce3e CFRunLoopRunSpecific + 462
31  com.apple.HIToolbox           	0x00007fff313e9abd RunCurrentEventLoopInMode + 292
32  com.apple.HIToolbox           	0x00007fff313e97d5 ReceiveNextEventCommon + 584
33  com.apple.HIToolbox           	0x00007fff313e9579 _BlockUntilNextEventMatchingListInModeWithFilter + 64
34  com.apple.AppKit              	0x00007fff2fa2f039 _DPSNextEvent + 883
35  com.apple.AppKit              	0x00007fff2fa2d880 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
36  com.apple.AppKit              	0x00007fff2fa1f58e -[NSApplication run] + 658
37  com.juce.pluginhost           	0x00000001092920f5 juce::MessageManager::runDispatchLoop() + 165 (juce_mac_MessageManager.mm:362)
38  com.juce.pluginhost           	0x0000000109291fcb juce::JUCEApplicationBase::main() + 379 (juce_ApplicationBase.cpp:262)
39  com.juce.pluginhost           	0x0000000109291dec juce::JUCEApplicationBase::main(int, char const**) + 60 (juce_ApplicationBase.cpp:240)
40  com.juce.pluginhost           	0x0000000108e549e3 main + 51 (HostStartup.cpp:278)
41  libdyld.dylib                 	0x00007fff6c8a5cc9 start + 1

This should now be resolved: