aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2018-07-13 15:59:26 +0200
committerUlf Hermann <ulf.hermann@qt.io>2018-10-16 13:28:05 +0000
commitfb1c562c2ed9cd43f16773f3228d64bd8ff32173 (patch)
tree47dc812e0a213d643c668b023ee5bd88175c7f95
parent8fc53e97644657e349fe1682a73429df7675f9e3 (diff)
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 <marco.benelli@qt.io>
-rw-r--r--src/libs/qmljs/qmljsdocument.cpp8
-rw-r--r--src/libs/qmljs/qmljsdocument.h3
2 files changed, 10 insertions, 1 deletions
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();