diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2019-06-14 12:09:35 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2019-06-14 19:08:51 +0200 |
commit | 84f8ceef3f3b1cf3f63d52d44a2ed8292aca68c3 (patch) | |
tree | ae405994ca98a3bc8ca18fe56d2c275fcbcac793 /src/qml/compiler/qv4compileddata.cpp | |
parent | acbc9a3984a5c729c6731f73431aae6d802aa78a (diff) |
Move the header checking into ExecutableCompilationUnit
We don't need to verify the header unless we want to execute the code.
Change-Id: Ieac51c47faafcd7047228b4264aa7750ba3d8889
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/compiler/qv4compileddata.cpp')
-rw-r--r-- | src/qml/compiler/qv4compileddata.cpp | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp index ee413a906d..2cb24dc113 100644 --- a/src/qml/compiler/qv4compileddata.cpp +++ b/src/qml/compiler/qv4compileddata.cpp @@ -46,9 +46,6 @@ #include <QScopeGuard> #include <QFileInfo> -// generated by qmake: -#include "qml_compile_hash_p.h" - #include <algorithm> QT_BEGIN_NAMESPACE @@ -57,19 +54,6 @@ namespace QV4 { namespace CompiledData { -#if defined(QML_COMPILE_HASH) -# ifdef Q_OS_LINUX -// Place on a separate section on Linux so it's easier to check from outside -// what the hash version is. -__attribute__((section(".qml_compile_hash"))) -# endif -const char qml_compile_hash[48 + 1] = QML_COMPILE_HASH; -static_assert(sizeof(Unit::libraryVersionHash) >= QML_COMPILE_HASH_LENGTH + 1, "Compile hash length exceeds reserved size in data structure. Please adjust and bump the format version"); -#else -# error "QML_COMPILE_HASH must be defined for the build of QtDeclarative to ensure version checking for cache files" -#endif - - CompilationUnit::CompilationUnit(const Unit *unitData, const QString &fileName, const QString &finalUrlString) { setUnitData(unitData, nullptr, fileName, finalUrlString); @@ -228,47 +212,6 @@ void Unit::generateChecksum() #endif } -bool Unit::verifyHeader(QDateTime expectedSourceTimeStamp, QString *errorString) const -{ - if (strncmp(magic, CompiledData::magic_str, sizeof(magic))) { - *errorString = QStringLiteral("Magic bytes in the header do not match"); - return false; - } - - if (version != quint32(QV4_DATA_STRUCTURE_VERSION)) { - *errorString = QString::fromUtf8("V4 data structure version mismatch. Found %1 expected %2").arg(version, 0, 16).arg(QV4_DATA_STRUCTURE_VERSION, 0, 16); - return false; - } - - if (qtVersion != quint32(QT_VERSION)) { - *errorString = QString::fromUtf8("Qt version mismatch. Found %1 expected %2").arg(qtVersion, 0, 16).arg(QT_VERSION, 0, 16); - return false; - } - - if (sourceTimeStamp) { - // Files from the resource system do not have any time stamps, so fall back to the application - // executable. - if (!expectedSourceTimeStamp.isValid()) - expectedSourceTimeStamp = QFileInfo(QCoreApplication::applicationFilePath()).lastModified(); - - if (expectedSourceTimeStamp.isValid() && expectedSourceTimeStamp.toMSecsSinceEpoch() != sourceTimeStamp) { - *errorString = QStringLiteral("QML source file has a different time stamp than cached file."); - return false; - } - } - -#if defined(QML_COMPILE_HASH) - if (qstrcmp(CompiledData::qml_compile_hash, libraryVersionHash) != 0) { - *errorString = QStringLiteral("QML library version mismatch. Expected compile hash does not match"); - return false; - } -#else -#error "QML_COMPILE_HASH must be defined for the build of QtDeclarative to ensure version checking for cache files" -#endif - - return true; -} - } } |