diff options
author | Marc Mutz <marc.mutz@qt.io> | 2023-04-04 11:40:36 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2023-06-21 11:58:03 +0000 |
commit | 7fa3267fda6cff720cca44e829f9a39789031a54 (patch) | |
tree | 4ad23ed71ed738f6b6197ebbdce5628efcfcd342 | |
parent | 91efd6116665bd71f7932adcf7a589204c239276 (diff) |
QPixmapCache: Move qHash(Key) from _p.h to public header
... and make it a hidden friend.
This avoids ODR violations when, because they can't use ours (private,
and not exported), users try to produce their own version of
qHash(Key).
[ChangeLog][QtGui][QPixmapCache] Made the qHash() overload for
QPixmapCache::Key public (was: private) API.
Pick-to: 6.6
Change-Id: I324ed001c0ae0a251ac2e1d04713013452ffff9c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-rw-r--r-- | src/gui/image/qpixmapcache.cpp | 11 | ||||
-rw-r--r-- | src/gui/image/qpixmapcache.h | 4 | ||||
-rw-r--r-- | src/gui/image/qpixmapcache_p.h | 2 |
3 files changed, 12 insertions, 5 deletions
diff --git a/src/gui/image/qpixmapcache.cpp b/src/gui/image/qpixmapcache.cpp index a57f144464..4639858256 100644 --- a/src/gui/image/qpixmapcache.cpp +++ b/src/gui/image/qpixmapcache.cpp @@ -218,10 +218,15 @@ QT_BEGIN_INCLUDE_NAMESPACE #include "qpixmapcache.moc" QT_END_INCLUDE_NAMESPACE -size_t qHash(const QPixmapCache::Key &k, size_t seed) +/*! + size_t QPixmapCache::qHash(const Key &key, size_t seed = 0); + \since 6.6 + + Returns the hash value for the \a key, using \a seed to seed the calculation. +*/ +size_t QPixmapCache::Key::hash(size_t seed) const noexcept { - const auto *keyData = QPMCache::get(k); - return qHash(keyData ? keyData->key : 0, seed); + return qHash(this->d ? this->d->key : 0, seed); } QPMCache::QPMCache() diff --git a/src/gui/image/qpixmapcache.h b/src/gui/image/qpixmapcache.h index 55aad6503f..72ee1b797f 100644 --- a/src/gui/image/qpixmapcache.h +++ b/src/gui/image/qpixmapcache.h @@ -31,6 +31,10 @@ public: bool isValid() const noexcept; private: + friend size_t qHash(const QPixmapCache::Key &k, size_t seed = 0) noexcept + { return k.hash(seed); } + size_t hash(size_t seed) const noexcept; + KeyData *d; friend class QPMCache; friend class QPixmapCache; diff --git a/src/gui/image/qpixmapcache_p.h b/src/gui/image/qpixmapcache_p.h index c9a9056301..43c4d9784c 100644 --- a/src/gui/image/qpixmapcache_p.h +++ b/src/gui/image/qpixmapcache_p.h @@ -23,8 +23,6 @@ QT_BEGIN_NAMESPACE -size_t qHash(const QPixmapCache::Key &k, size_t seed = 0); - class QPixmapCache::KeyData { public: |