aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlengine.cpp
diff options
context:
space:
mode:
authorRobin Burchell <robin.burchell@jollamobile.com>2013-10-08 01:23:15 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-08 02:57:35 +0200
commit29e3d02c26d264adb2b581b3511d29efb124f331 (patch)
treef50f2c5ac687850afe0bb1b10ebbee956e5d6656 /src/qml/qml/qqmlengine.cpp
parent73cb84edffa4981b56019747d90585f8efca0b41 (diff)
Delay calculation of offline storage path as long as is practically possible.
This avoids calculating it incorrectly in the case that something later clobbers argv, such as a zygote or booster-type mechanism. Change-Id: Ifab16c7c94e9ee3fded0dfda2266a12c910858ee Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au> Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
Diffstat (limited to 'src/qml/qml/qqmlengine.cpp')
-rw-r--r--src/qml/qml/qqmlengine.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp
index c8b602e48e..64cde85913 100644
--- a/src/qml/qml/qqmlengine.cpp
+++ b/src/qml/qml/qqmlengine.cpp
@@ -803,12 +803,6 @@ void QQmlEnginePrivate::init()
QQmlProfilerService::initialize();
QDebugMessageService::instance();
}
-
- QString dataLocation = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
- if (!dataLocation.isEmpty())
- offlineStoragePath = dataLocation.replace(QLatin1Char('/'), QDir::separator())
- + QDir::separator() + QLatin1String("QML")
- + QDir::separator() + QLatin1String("OfflineStorage");
}
QQuickWorkerScriptEngine *QQmlEnginePrivate::getWorkerScriptEngine()
@@ -1995,6 +1989,16 @@ void QQmlEngine::setOfflineStoragePath(const QString& dir)
QString QQmlEngine::offlineStoragePath() const
{
Q_D(const QQmlEngine);
+
+ if (d->offlineStoragePath.isEmpty()) {
+ QString dataLocation = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
+ QQmlEnginePrivate *e = const_cast<QQmlEnginePrivate *>(d);
+ if (!dataLocation.isEmpty())
+ e->offlineStoragePath = dataLocation.replace(QLatin1Char('/'), QDir::separator())
+ + QDir::separator() + QLatin1String("QML")
+ + QDir::separator() + QLatin1String("OfflineStorage");
+ }
+
return d->offlineStoragePath;
}