Fix some bad uses of QSharedPointerData::operator T*
Avoid detaching where possible Change-Id: I438d3e66689aeef05951af86a48af2a6910da7c2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>bb10
parent
b002c48cc7
commit
ada6e4fbe9
|
|
@ -290,7 +290,7 @@ bool QProcessEnvironment::isEmpty() const
|
|||
*/
|
||||
void QProcessEnvironment::clear()
|
||||
{
|
||||
if (d)
|
||||
if (d.constData())
|
||||
d->vars.clear();
|
||||
// Unix: Don't clear d->nameMap, as the environment is likely to be
|
||||
// re-populated with the same keys again.
|
||||
|
|
@ -339,9 +339,9 @@ void QProcessEnvironment::insert(const QString &name, const QString &value)
|
|||
*/
|
||||
void QProcessEnvironment::remove(const QString &name)
|
||||
{
|
||||
if (d) {
|
||||
d.detach(); // detach before prepareName()
|
||||
d->vars.remove(d->prepareName(name));
|
||||
if (d.constData()) {
|
||||
QProcessEnvironmentPrivate *p = d.data();
|
||||
p->vars.remove(p->prepareName(name));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -743,9 +743,10 @@ QStringList QUrlQuery::allQueryItemValues(const QString &key, QUrl::ComponentFor
|
|||
void QUrlQuery::removeQueryItem(const QString &key)
|
||||
{
|
||||
if (d.constData()) {
|
||||
Map::iterator it = d->findKey(key);
|
||||
if (it != d->itemList.end())
|
||||
d->itemList.erase(it);
|
||||
auto *p = d.data();
|
||||
Map::iterator it = p->findKey(key);
|
||||
if (it != p->itemList.end())
|
||||
p->itemList.erase(it);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -758,12 +759,13 @@ void QUrlQuery::removeQueryItem(const QString &key)
|
|||
void QUrlQuery::removeAllQueryItems(const QString &key)
|
||||
{
|
||||
if (d.constData()) {
|
||||
const QString encodedKey = d->recodeFromUser(key);
|
||||
auto *p = d.data();
|
||||
const QString encodedKey = p->recodeFromUser(key);
|
||||
auto firstEqualsEncodedKey = [&encodedKey](const QPair<QString, QString> &item) {
|
||||
return item.first == encodedKey;
|
||||
};
|
||||
const auto end = d->itemList.end();
|
||||
d->itemList.erase(std::remove_if(d->itemList.begin(), end, firstEqualsEncodedKey), end);
|
||||
const auto end = p->itemList.end();
|
||||
p->itemList.erase(std::remove_if(p->itemList.begin(), end, firstEqualsEncodedKey), end);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2569,11 +2569,11 @@ QRegularExpressionMatch QRegularExpressionMatchIterator::next()
|
|||
{
|
||||
if (!hasNext()) {
|
||||
qWarning("QRegularExpressionMatchIterator::next() called on an iterator already at end");
|
||||
return d->next;
|
||||
return d.constData()->next;
|
||||
}
|
||||
|
||||
QRegularExpressionMatch current = d->next;
|
||||
d->next = d->next.d.constData()->nextMatch();
|
||||
QRegularExpressionMatch current = d.constData()->next;
|
||||
d->next = current.d.constData()->nextMatch();
|
||||
return current;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ public:
|
|||
// isTimeZoneIdAvailable() and to create named IANA time zones. This is usually the host
|
||||
// system, but may be different if the host resources are insufficient or if
|
||||
// QT_NO_SYSTEMLOCALE is set. A simple UTC backend is used if no alternative is available.
|
||||
QSharedDataPointer<QTimeZonePrivate> backend;
|
||||
QExplicitlySharedDataPointer<QTimeZonePrivate> backend;
|
||||
};
|
||||
|
||||
Q_GLOBAL_STATIC(QTimeZoneSingleton, global_tz);
|
||||
|
|
@ -339,11 +339,11 @@ QTimeZone::QTimeZone(const QByteArray &ianaId)
|
|||
d = new QUtcTimeZonePrivate(ianaId);
|
||||
// If not a CLDR UTC offset ID then try creating it with the system backend.
|
||||
// Relies on backend not creating valid TZ with invalid name.
|
||||
if (!d->isValid())
|
||||
if (!d.constData()->isValid())
|
||||
d = ianaId.isEmpty() ? newBackendTimeZone() : newBackendTimeZone(ianaId);
|
||||
// Can also handle UTC with arbitrary (valid) offset, but only do so as
|
||||
// fall-back, since either of the above may handle it more informatively.
|
||||
if (!d->isValid()) {
|
||||
if (!d.constData()->isValid()) {
|
||||
qint64 offset = QUtcTimeZonePrivate::offsetFromUtcString(ianaId);
|
||||
if (offset != QTimeZonePrivate::invalidSeconds()) {
|
||||
// Should have abs(offset) < 24 * 60 * 60 = 86400.
|
||||
|
|
|
|||
|
|
@ -919,13 +919,13 @@ void QTextFormat::merge(const QTextFormat &other)
|
|||
if (!other.d)
|
||||
return;
|
||||
|
||||
QTextFormatPrivate *d = this->d;
|
||||
QTextFormatPrivate *p = d.data();
|
||||
|
||||
const QList<QT_PREPEND_NAMESPACE(Property)> &otherProps = other.d->props;
|
||||
d->props.reserve(d->props.size() + otherProps.size());
|
||||
const QList<QT_PREPEND_NAMESPACE(Property)> &otherProps = other.d.constData()->props;
|
||||
p->props.reserve(p->props.size() + otherProps.size());
|
||||
for (int i = 0; i < otherProps.count(); ++i) {
|
||||
const QT_PREPEND_NAMESPACE(Property) &p = otherProps.at(i);
|
||||
d->insertProperty(p.key, p.value);
|
||||
const QT_PREPEND_NAMESPACE(Property) &prop = otherProps.at(i);
|
||||
p->insertProperty(prop.key, prop.value);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1261,10 +1261,10 @@ int QTextFormat::objectIndex() const
|
|||
void QTextFormat::setObjectIndex(int o)
|
||||
{
|
||||
if (o == -1) {
|
||||
if (d)
|
||||
if (d.constData())
|
||||
d->clearProperty(ObjectIndex);
|
||||
} else {
|
||||
if (!d)
|
||||
if (!d.constData())
|
||||
d = new QTextFormatPrivate;
|
||||
// ### type
|
||||
d->insertProperty(ObjectIndex, o);
|
||||
|
|
|
|||
|
|
@ -232,9 +232,10 @@ QUrl QNetworkCacheMetaData::url() const
|
|||
*/
|
||||
void QNetworkCacheMetaData::setUrl(const QUrl &url)
|
||||
{
|
||||
d->url = url;
|
||||
d->url.setPassword(QString());
|
||||
d->url.setFragment(QString());
|
||||
auto *p = d.data();
|
||||
p->url = url;
|
||||
p->url.setPassword(QString());
|
||||
p->url.setFragment(QString());
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
@ -395,12 +396,13 @@ static inline QDataStream &operator>>(QDataStream &in, QNetworkCacheMetaData::At
|
|||
|
||||
void QNetworkCacheMetaDataPrivate::load(QDataStream &in, QNetworkCacheMetaData &metaData)
|
||||
{
|
||||
in >> metaData.d->url;
|
||||
in >> metaData.d->expirationDate;
|
||||
in >> metaData.d->lastModified;
|
||||
in >> metaData.d->saveToDisk;
|
||||
in >> metaData.d->attributes;
|
||||
in >> metaData.d->headers;
|
||||
auto *p = metaData.d.data();
|
||||
in >> p->url;
|
||||
in >> p->expirationDate;
|
||||
in >> p->lastModified;
|
||||
in >> p->saveToDisk;
|
||||
in >> p->attributes;
|
||||
in >> p->headers;
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
|
|||
|
|
@ -630,12 +630,13 @@ void QSslConfiguration::setCiphers(const QList<QSslCipher> &ciphers)
|
|||
*/
|
||||
void QSslConfiguration::setCiphers(const QString &ciphers)
|
||||
{
|
||||
d->ciphers.clear();
|
||||
auto *p = d.data();
|
||||
p->ciphers.clear();
|
||||
const auto cipherNames = ciphers.split(QLatin1Char(':'), Qt::SkipEmptyParts);
|
||||
for (const QString &cipherName : cipherNames) {
|
||||
QSslCipher cipher(cipherName);
|
||||
if (!cipher.isNull())
|
||||
d->ciphers << cipher;
|
||||
p->ciphers << cipher;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ SSL* QSslContext::createSsl()
|
|||
}
|
||||
|
||||
#ifndef OPENSSL_NO_NEXTPROTONEG
|
||||
QList<QByteArray> protocols = sslConfiguration.d->nextAllowedProtocols;
|
||||
QList<QByteArray> protocols = sslConfiguration.d.constData()->nextAllowedProtocols;
|
||||
if (!protocols.isEmpty()) {
|
||||
m_supportedNPNVersions.clear();
|
||||
for (int a = 0; a < protocols.count(); ++a) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue