De-inline qHash(const QUrl&) and improve
Make it a friend and access the internals to have better performance. Change-Id: I3bbf0b0faa5363278b7b3871d6b6fb5f2225a5f4 Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
This commit is contained in:
parent
66df11f4d1
commit
83526a9bdc
@ -2567,6 +2567,27 @@ QString QUrl::errorString() const
|
||||
\internal
|
||||
*/
|
||||
|
||||
/*! \fn uint qHash(const QUrl &url)
|
||||
\relates QHash
|
||||
|
||||
Returns the hash value for the \a url.
|
||||
*/
|
||||
uint qHash(const QUrl &url)
|
||||
{
|
||||
if (!url.d)
|
||||
return qHash(-1); // the hash of an unset port (-1)
|
||||
|
||||
return qHash(url.d->scheme) ^
|
||||
qHash(url.d->userName) ^
|
||||
qHash(url.d->password) ^
|
||||
qHash(url.d->host) ^
|
||||
qHash(url.d->port) ^
|
||||
qHash(url.d->path) ^
|
||||
qHash(url.d->query) ^
|
||||
qHash(url.d->fragment);
|
||||
}
|
||||
|
||||
|
||||
// The following code has the following copyright:
|
||||
/*
|
||||
Copyright (C) Research In Motion Limited 2009. All rights reserved.
|
||||
|
@ -304,6 +304,7 @@ public:
|
||||
static QByteArray toAce(const QString &);
|
||||
static QStringList idnWhitelist();
|
||||
static void setIdnWhitelist(const QStringList &);
|
||||
friend Q_CORE_EXPORT uint qHash(const QUrl &url);
|
||||
|
||||
private:
|
||||
QUrlPrivate *d;
|
||||
@ -314,11 +315,6 @@ public:
|
||||
inline DataPtr &data_ptr() { return d; }
|
||||
};
|
||||
|
||||
inline uint qHash(const QUrl &url)
|
||||
{
|
||||
return qHash(url.toString());
|
||||
}
|
||||
|
||||
Q_DECLARE_TYPEINFO(QUrl, Q_MOVABLE_TYPE);
|
||||
Q_DECLARE_SHARED(QUrl)
|
||||
Q_DECLARE_OPERATORS_FOR_FLAGS(QUrl::ComponentFormattingOptions)
|
||||
|
Loading…
Reference in New Issue
Block a user