summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/directfb
diff options
context:
space:
mode:
authorLucile Quirion <lucile.quirion@savoirfairelinux.com>2014-05-01 10:16:42 -0400
committerLaszlo Agocs <laszlo.agocs@digia.com>2014-06-16 13:25:53 +0200
commit59d6871ae3a9978d5578811c50a94f5cb3fc704d (patch)
treef9bd78e1739a05dc321796c4dd36b61709206d29 /src/plugins/platforms/directfb
parent3f39c0f76cec121181ab9d6a0cf057c1b1aeb25c (diff)
directfb: fix QThread destroyed while running
Commit cf092abdfc888f19a607a43c9b4bac776b5c1f8e introduces a virtual "void initialize()" in QPlatformIntegration class. "void initialize()" was already implemented in QDirectFbIntegration since commit 6534898cc69e22115cf158f71a1e0edd7f13877b 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>
Diffstat (limited to 'src/plugins/platforms/directfb')
-rw-r--r--src/plugins/platforms/directfb/main.cpp3
-rw-r--r--src/plugins/platforms/directfb/qdirectfbintegration.cpp2
-rw-r--r--src/plugins/platforms/directfb/qdirectfbintegration.h2
3 files changed, 4 insertions, 3 deletions
diff --git a/src/plugins/platforms/directfb/main.cpp b/src/plugins/platforms/directfb/main.cpp
index 423e33efd5..b0354c236d 100644
--- a/src/plugins/platforms/directfb/main.cpp
+++ b/src/plugins/platforms/directfb/main.cpp
@@ -75,7 +75,8 @@ QPlatformIntegration * QDirectFbIntegrationPlugin::create(const QString& system,
if (!integration)
return 0;
- integration->initialize();
+ integration->connectToDirectFb();
+
return integration;
}
diff --git a/src/plugins/platforms/directfb/qdirectfbintegration.cpp b/src/plugins/platforms/directfb/qdirectfbintegration.cpp
index 7ca7da8bcd..3d1b79ef38 100644
--- a/src/plugins/platforms/directfb/qdirectfbintegration.cpp
+++ b/src/plugins/platforms/directfb/qdirectfbintegration.cpp
@@ -64,7 +64,7 @@ QDirectFbIntegration::QDirectFbIntegration()
{
}
-void QDirectFbIntegration::initialize()
+void QDirectFbIntegration::connectToDirectFb()
{
initializeDirectFB();
initializeScreen();
diff --git a/src/plugins/platforms/directfb/qdirectfbintegration.h b/src/plugins/platforms/directfb/qdirectfbintegration.h
index 5822202eea..b49600bed9 100644
--- a/src/plugins/platforms/directfb/qdirectfbintegration.h
+++ b/src/plugins/platforms/directfb/qdirectfbintegration.h
@@ -60,7 +60,7 @@ public:
QDirectFbIntegration();
~QDirectFbIntegration();
- void initialize();
+ void connectToDirectFb();
QPlatformPixmap *createPlatformPixmap(QPlatformPixmap::PixelType type) const;
QPlatformWindow *createPlatformWindow(QWindow *window) const;