From fb1c562c2ed9cd43f16773f3228d64bd8ff32173 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Fri, 13 Jul 2018 15:59:26 +0200 Subject: QmlJS: Don't recalculate the empty library's fingerprint LibraryInfo::calculateFingerprint() is expensive. The default ctor will always result in the same fingerprint. We only need to calculate it once. Change-Id: I680dc63624d68ddeca7f3467f4518d767274b246 Reviewed-by: Marco Benelli --- src/libs/qmljs/qmljsdocument.cpp | 8 ++++++++ src/libs/qmljs/qmljsdocument.h | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/libs/qmljs/qmljsdocument.cpp b/src/libs/qmljs/qmljsdocument.cpp index 6de0a75fcb..0474fca121 100644 --- a/src/libs/qmljs/qmljsdocument.cpp +++ b/src/libs/qmljs/qmljsdocument.cpp @@ -354,6 +354,14 @@ Bind *Document::bind() const return _bind; } +LibraryInfo::LibraryInfo() + : _status(NotScanned) + , _dumpStatus(NoTypeInfo) +{ + static const QByteArray emptyFingerprint = calculateFingerprint(); + _fingerprint = emptyFingerprint; +} + LibraryInfo::LibraryInfo(Status status) : _status(status) , _dumpStatus(NoTypeInfo) diff --git a/src/libs/qmljs/qmljsdocument.h b/src/libs/qmljs/qmljsdocument.h index 937c763573..4029373992 100644 --- a/src/libs/qmljs/qmljsdocument.h +++ b/src/libs/qmljs/qmljsdocument.h @@ -164,7 +164,8 @@ private: QString _dumpError; public: - explicit LibraryInfo(Status status = NotScanned); + LibraryInfo(); + explicit LibraryInfo(Status status); explicit LibraryInfo(const QmlDirParser &parser, const QByteArray &fingerprint = QByteArray()); ~LibraryInfo(); -- cgit v1.2.3