Ver Fonte

Properly clean up PlayerRenderer in OpenGL init error case

We delete the m_renderer instance, but don't set it to 0. The dangling
pointer could in theory be accessed in other places. In particular,
"emit onFatalError()" is asynchronous (queued connection), and won't
bail out immediately.
Vincent Lang há 9 anos atrás
pai
commit
ce51bcfcad
1 ficheiros alterados com 1 adições e 0 exclusões
  1. 1 0
      src/player/PlayerQuickItem.cpp

+ 1 - 0
src/player/PlayerQuickItem.cpp

@@ -206,6 +206,7 @@ void PlayerQuickItem::onSynchronize()
     if (!m_renderer->init())
     {
       delete m_renderer;
+      m_renderer = NULL;
       emit onFatalError(tr("Could not initialize OpenGL."));
       return;
     }