diff options
Diffstat (limited to 'src/qml/compiler/qv4compilationunitmapper.cpp')
-rw-r--r-- | src/qml/compiler/qv4compilationunitmapper.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/qml/compiler/qv4compilationunitmapper.cpp b/src/qml/compiler/qv4compilationunitmapper.cpp index b53b7cf784..2e1213464c 100644 --- a/src/qml/compiler/qv4compilationunitmapper.cpp +++ b/src/qml/compiler/qv4compilationunitmapper.cpp @@ -42,6 +42,7 @@ #include "qv4compileddata_p.h" #include <QFileInfo> #include <QDateTime> +#include <QCoreApplication> QT_BEGIN_NAMESPACE @@ -77,7 +78,16 @@ bool CompilationUnitMapper::verifyHeader(const CompiledData::Unit *header, const { QFileInfo sourceCode(sourcePath); - if (sourceCode.exists() && sourceCode.lastModified().toMSecsSinceEpoch() != header->sourceTimeStamp) { + QDateTime sourceTimeStamp; + if (sourceCode.exists()) + sourceTimeStamp = sourceCode.lastModified(); + + // Files from the resource system do not have any time stamps, so fall back to the application + // executable. + if (!sourceTimeStamp.isValid()) + sourceTimeStamp = QFileInfo(QCoreApplication::applicationFilePath()).lastModified(); + + if (sourceTimeStamp.isValid() && sourceTimeStamp.toMSecsSinceEpoch() != header->sourceTimeStamp) { *errorString = QStringLiteral("QML source file has a different time stamp than cached file."); return false; } |