summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2023-04-04 11:40:36 +0200
committerMarc Mutz <marc.mutz@qt.io>2023-06-21 11:58:03 +0000
commit7fa3267fda6cff720cca44e829f9a39789031a54 (patch)
tree4ad23ed71ed738f6b6197ebbdce5628efcfcd342
parent91efd6116665bd71f7932adcf7a589204c239276 (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.cpp11
-rw-r--r--src/gui/image/qpixmapcache.h4
-rw-r--r--src/gui/image/qpixmapcache_p.h2
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: