Fix time stamp related errors when loading AOT caches
Cache files created ahead of time do not require a timestamp match towards the source file. This is because we cannot guarantee that all transport mechanism from source to deployment preserve the timestamp at the required resolution (if at all) and the source may also not be present at all (obfuscated deployment chosen). For cache files created at run-time however we'll continue to require time stamp verification. Change-Id: Ia7cdf3d063edd5bb1e6985089f1a666c970a0bd0 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This commit is contained in:
parent
38ea4e74ff
commit
55e558144d
|
@ -76,7 +76,7 @@ bool CompilationUnitMapper::verifyHeader(const CompiledData::Unit *header, const
|
|||
return false;
|
||||
}
|
||||
|
||||
{
|
||||
if (header->sourceTimeStamp) {
|
||||
QFileInfo sourceCode(sourcePath);
|
||||
QDateTime sourceTimeStamp;
|
||||
if (sourceCode.exists())
|
||||
|
|
|
@ -361,7 +361,7 @@ bool CompilationUnit::loadFromDisk(const QUrl &url, EvalISelFactory *iselFactory
|
|||
const Unit * const oldDataPtr = (data && !(data->flags & QV4::CompiledData::Unit::StaticData)) ? data : nullptr;
|
||||
QScopedValueRollback<const Unit *> dataPtrChange(data, mappedUnit);
|
||||
|
||||
if (sourcePath != QQmlFile::urlToLocalFileOrQrc(stringAt(data->sourceFileIndex))) {
|
||||
if (data->sourceFileIndex != 0 && sourcePath != QQmlFile::urlToLocalFileOrQrc(stringAt(data->sourceFileIndex))) {
|
||||
*errorString = QStringLiteral("QML source file has moved to a different location.");
|
||||
return false;
|
||||
}
|
||||
|
@ -409,12 +409,12 @@ bool CompilationUnit::saveToDisk(const QUrl &unitUrl, QString *errorString)
|
|||
{
|
||||
errorString->clear();
|
||||
|
||||
#if !defined(V4_BOOTSTRAP)
|
||||
if (data->sourceTimeStamp == 0) {
|
||||
*errorString = QStringLiteral("Missing time stamp for source file");
|
||||
return false;
|
||||
}
|
||||
|
||||
#if !defined(V4_BOOTSTRAP)
|
||||
if (!QQmlFile::isLocalFile(unitUrl)) {
|
||||
*errorString = QStringLiteral("File has to be a local file.");
|
||||
return false;
|
||||
|
|
|
@ -96,7 +96,6 @@ static bool compileQmlFile(const QString &inputFileName, const QString &outputFi
|
|||
error->message = QLatin1String("Error reading from ") + inputFileName + QLatin1Char(':') + f.errorString();
|
||||
return false;
|
||||
}
|
||||
irDocument.jsModule.sourceTimeStamp = QFileInfo(f).lastModified().toMSecsSinceEpoch();
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -177,7 +176,6 @@ static bool compileJSFile(const QString &inputFileName, const QString &outputFil
|
|||
error->message = QLatin1String("Error reading from ") + inputFileName + QLatin1Char(':') + f.errorString();
|
||||
return false;
|
||||
}
|
||||
irDocument.jsModule.sourceTimeStamp = QFileInfo(f).lastModified().toMSecsSinceEpoch();
|
||||
}
|
||||
|
||||
QQmlJS::Engine *engine = &irDocument.jsParserEngine;
|
||||
|
|
Loading…
Reference in New Issue