Prevent unneeded fallback

Starting in be8327bd54, we assume that all
exceptions in DoRePaint() are caused by OpenGL.  But many calls in
UpdateItems() will throw if there are internal errors such as
std::out_of_range.  Here, we catch those errors and simply skip ahead
rather than falling back to Cairo
This commit is contained in:
Seth Hillbrand 2022-01-05 13:34:12 -08:00
parent 7afe188a29
commit 444801ada6
1 changed files with 13 additions and 1 deletions

View File

@ -212,7 +212,19 @@ void EDA_DRAW_PANEL_GAL::DoRePaint()
try
{
cntUpd.Start();
m_view->UpdateItems();
try
{
m_view->UpdateItems();
}
catch( std::out_of_range& err )
{
// Don't do anything here but don't fail
// This can happen when we don't catch `at()` calls
wxString msg;
msg.Printf( wxT( "Out of Range error: %s" ), err.what() );
wxLogDebug( msg );
}
cntUpd.Stop();
cntCtx.Start();