From e373fe6aa91f455c52b4fc390e600c4116871652 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 13 Jan 2023 10:21:43 +0100 Subject: [PATCH] Utils: Avoid temporary strings when hashing links Change-Id: I5d5cc5ed35fea7692d1c0bfdd9091928b5d46487 Reviewed-by: Qt CI Bot Reviewed-by: Christian Kandeler --- src/libs/utils/link.cpp | 7 ------- src/libs/utils/link.h | 5 +++-- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/libs/utils/link.cpp b/src/libs/utils/link.cpp index efa367d8add..36798ed6095 100644 --- a/src/libs/utils/link.cpp +++ b/src/libs/utils/link.cpp @@ -41,11 +41,4 @@ Link Link::fromFilePath(const FilePath &filePath, bool canContainLineNumber, QSt return Link{filePath.withNewPath(fileName.left(postfixPos)), lineColumn.line, lineColumn.column}; } -size_t qHash(const Link &l) -{ - QString s = l.targetFilePath.toString(); - return qHash(s.append(':').append(QString::number(l.targetLine)).append(':') - .append(QString::number(l.targetColumn))); -} - } // namespace Utils diff --git a/src/libs/utils/link.h b/src/libs/utils/link.h index 7c9b9823ad7..83eadeb4b69 100644 --- a/src/libs/utils/link.h +++ b/src/libs/utils/link.h @@ -46,6 +46,9 @@ public: } bool operator!=(const Link &other) const { return !(*this == other); } + friend size_t qHash(const Link &l, uint seed = 0) + { return qHashMulti(seed, l.targetFilePath, l.targetLine, l.targetColumn); } + int linkTextStart = -1; int linkTextEnd = -1; @@ -54,8 +57,6 @@ public: int targetColumn; }; -QTCREATOR_UTILS_EXPORT size_t qHash(const Link &l); - using LinkHandler = std::function; using Links = QList;