Browse Source

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

(cherry picked from commit 444801ada6)
7.0
Seth Hillbrand 4 years ago
parent
commit
c340760eaa
  1. 14
      common/draw_panel_gal.cpp

14
common/draw_panel_gal.cpp

@ -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();

Loading…
Cancel
Save