BR: Decent number of crashes in VBlankDispatcher::reconfigureDisplays on customer machines

You can’t just assume CreateDXGIFactory will always succeed. You need to handle the case where factory == nullptr

Returns S_OK if successful; otherwise, returns one of the following DXGI_ERROR.

Waveform_13!juce::VBlankDispatcher::reconfigureDisplays
Waveform_13!juce::VBlankDispatcher::{ctor}
Waveform_13!juce::SingletonHolder::getWithoutChecking
Waveform_13!juce::SingletonHolder::get
Waveform_13!juce::VBlankDispatcher::getInstance
Waveform_13!juce::HWNDComponentPeer::updateCurrentMonitorAndRefreshVBlankDispatcher
Waveform_13!juce::HWNDComponentPeer::HWNDComponentPeer
Waveform_13!juce::Component::createNewPeer
Waveform_13!juce::Component::addToDesktop
Waveform_13!juce::TopLevelWindow::TopLevelWindow
2 Likes

This code has changed a bit on the JUCE 8 branch. There are now some additional null checks, in case the factory was not created successfully. Hopefully this crash should be fixed as a result.

Please let us know if you continue to see issues on the JUCE 8 branch.

Thanks. Can this and the vblank deadlock get cherry picked to juce7? We have released products with a lot of crashes and I need to get fixes out asap.

2 Likes

Yes

2 Likes

The related fixes are now available on develop

1 Like