diff options
author | Morten Johan Sørvig <morten.sorvig@nokia.com> | 2012-02-02 11:02:01 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-02 12:49:19 +0100 |
commit | cecec2e2ce335a62e1fa3eb80a9b45c2d2e6c822 (patch) | |
tree | 1e40f35f3942a1cc94a519d2358722235f655294 /src | |
parent | b852b019586cd53c2b49848ff2ae703fb0815308 (diff) |
Fix qmlscene segfault on startup on Mac OS 10.6.
Task-number: QTBUG-23982
The platform plugin loader was searching for plugins
in qtbase/bin and would segfault when checking if
the qmlscene binary was a plugin.
Test if "../Plugins" actually exists before setting
it as the platform plugin path.
Change-Id: Ibd887b5c5045d23e3eb62867dc7598e09d3918ad
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Sarah Jane Smith <sarah.j.smith@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 4096628d93..b1cbb5fcae 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -54,6 +54,7 @@ #include <QtCore/private/qabstracteventdispatcher_p.h> #include <QtCore/qmutex.h> #include <QtCore/private/qthread_p.h> +#include <QtCore/qdir.h> #include <QtDebug> #include <qpalette.h> #include <qscreen.h> @@ -384,8 +385,9 @@ void QGuiApplicationPrivate::createPlatformIntegration() // TODO (msorvig): Create proper cross-platform solution for loading // deployed platform plugins #ifdef Q_OS_MAC - if (platformPluginPath.isEmpty()) { - platformPluginPath = QCoreApplication::applicationDirPath() + QLatin1String("../Plugins/"); + const QString bundlePluginPath = QCoreApplication::applicationDirPath() + QLatin1String("../Plugins/"); + if (platformPluginPath.isEmpty() && QDir(bundlePluginPath).exists()) { + platformPluginPath = bundlePluginPath; } #endif |