From 1f4b6837baa390f5a7d570dfd2ac8a9290f27b22 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 5 Jan 2023 17:21:37 +0100 Subject: [PATCH] Utils: Make TreeStorageBase related qHash and comparison hidden friends Also, inline the hashing. Change-Id: I75859ad5481ab673d6c6f233c6fe67a96f9cda45 Reviewed-by: Jarek Kobus --- src/libs/utils/tasktree.cpp | 5 ----- src/libs/utils/tasktree.h | 19 +++++++++---------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/libs/utils/tasktree.cpp b/src/libs/utils/tasktree.cpp index 62db76982f4..ea4b3760373 100644 --- a/src/libs/utils/tasktree.cpp +++ b/src/libs/utils/tasktree.cpp @@ -14,11 +14,6 @@ bool TreeStorageBase::isValid() const return m_storageData && m_storageData->m_constructor && m_storageData->m_destructor; } -size_t TreeStorageBase::hash(uint seed) const -{ - return size_t(m_storageData.get()) ^ seed; -} - TreeStorageBase::TreeStorageBase(StorageConstructor ctor, StorageDestructor dtor) : m_storageData(new StorageData{ctor, dtor}) { } diff --git a/src/libs/utils/tasktree.h b/src/libs/utils/tasktree.h index 10b18e2a078..f355a59bc3e 100644 --- a/src/libs/utils/tasktree.h +++ b/src/libs/utils/tasktree.h @@ -33,11 +33,6 @@ class QTCREATOR_UTILS_EXPORT TreeStorageBase { public: bool isValid() const; - friend bool operator==(const TreeStorageBase &first, const TreeStorageBase &second) - { return first.m_storageData == second.m_storageData; } - friend bool operator!=(const TreeStorageBase &first, const TreeStorageBase &second) - { return first.m_storageData != second.m_storageData; } - size_t hash(uint seed) const; protected: using StorageConstructor = std::function; @@ -51,6 +46,15 @@ private: void deleteStorage(int id); void activateStorage(int id); + friend bool operator==(const TreeStorageBase &first, const TreeStorageBase &second) + { return first.m_storageData == second.m_storageData; } + + friend bool operator!=(const TreeStorageBase &first, const TreeStorageBase &second) + { return first.m_storageData != second.m_storageData; } + + friend size_t qHash(const TreeStorageBase &storage, uint seed = 0) + { return size_t(storage.m_storageData.get()) ^ seed; } + struct StorageData { ~StorageData(); StorageConstructor m_constructor = {}; @@ -64,11 +68,6 @@ private: friend TaskTreePrivate; }; -inline size_t qHash(const TreeStorageBase &storage, uint seed = 0) -{ - return storage.hash(seed); -} - template class TreeStorage : public TreeStorageBase {