diff options
author | Robin Burchell <robin.burchell@jollamobile.com> | 2013-10-08 01:23:15 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-08 02:57:35 +0200 |
commit | 29e3d02c26d264adb2b581b3511d29efb124f331 (patch) | |
tree | f50f2c5ac687850afe0bb1b10ebbee956e5d6656 /src/qml/qml/qqmlengine.cpp | |
parent | 73cb84edffa4981b56019747d90585f8efca0b41 (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.cpp | 16 |
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; } |