directfb: fix QThread destroyed while running

Commit cf092abdfc introduces a virtual
"void initialize()" in QPlatformIntegration class.

"void initialize()" was already implemented in QDirectFbIntegration
since commit 6534898cc6 allowing
initialization steps to be overridden by QDirectFbIntegrationEGL.

Therefore the QScopePointer "m_input" handling a QThread is reset twice.
The QThread firstly created is forcibly terminated. The application
displays the error message "QThread: Destroyed while thread is still
running" and sometimes crash with a SIGSEGV.

This commit rename QDirectFbIntegration::initialize() into
QDirectFbIntegration::connectToDirectFb() to fix this issue.

Task-number: QTBUG-38710
Change-Id: I3ca07c373af7c47abf08da2b45bbcf7a6cf573ad
Reviewed-by: Holger Freyther <holger+qt@freyther.de>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
This commit is contained in:
Lucile Quirion 2014-05-01 10:16:42 -04:00 committed by Laszlo Agocs
parent 3f39c0f76c
commit 59d6871ae3
3 changed files with 4 additions and 3 deletions

View File

@ -75,7 +75,8 @@ QPlatformIntegration * QDirectFbIntegrationPlugin::create(const QString& system,
if (!integration)
return 0;
integration->initialize();
integration->connectToDirectFb();
return integration;
}

View File

@ -64,7 +64,7 @@ QDirectFbIntegration::QDirectFbIntegration()
{
}
void QDirectFbIntegration::initialize()
void QDirectFbIntegration::connectToDirectFb()
{
initializeDirectFB();
initializeScreen();

View File

@ -60,7 +60,7 @@ public:
QDirectFbIntegration();
~QDirectFbIntegration();
void initialize();
void connectToDirectFb();
QPlatformPixmap *createPlatformPixmap(QPlatformPixmap::PixelType type) const;
QPlatformWindow *createPlatformWindow(QWindow *window) const;