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>
This commit is contained in:
Ulf Hermann
2018-07-13 15:59:26 +02:00
parent 8fc53e9764
commit fb1c562c2e
2 changed files with 10 additions and 1 deletions

View File

@@ -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)

View File

@@ -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();