Kaynağa Gözat

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 9 yıl önce
ebeveyn
işleme
ce51bcfcad
1 değiştirilmiş dosya ile 1 ekleme ve 0 silme
  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;
     }