소스 검색

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 년 전
부모
커밋
ce51bcfcad
1개의 변경된 파일1개의 추가작업 그리고 0개의 파일을 삭제
  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;
     }