diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2020-07-23 13:50:34 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2020-07-27 11:25:49 +0200 |
commit | d3c8757731d0b0d9e7a6448f1d1c21997136a19d (patch) | |
tree | d9393c862c2456b86c3a77bd1cc783b0aa01382d /src/corelib/io | |
parent | f144507829a39f9327ac1abe99c18e5f79e7ebcf (diff) |
Purge redundant recoding of URL fragments from QByteArray
QUrl::fromEncodedComponent_helper() only existed to support some old
methods deprecated since 5.0, that I recently removed.
It was the only caller of qt_urlRecodeByteArray() aside from that
function's own autotest.
Both were private.
Task-number: QTBUG-85700
Change-Id: I5d09fd44e768847ce51a1ae7043150922cb5314c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/corelib/io')
-rw-r--r-- | src/corelib/io/qurl.cpp | 11 | ||||
-rw-r--r-- | src/corelib/io/qurl.h | 4 | ||||
-rw-r--r-- | src/corelib/io/qurl_p.h | 1 | ||||
-rw-r--r-- | src/corelib/io/qurlrecode.cpp | 48 |
4 files changed, 0 insertions, 64 deletions
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index a85bb0e58c..615c814e91 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -3013,17 +3013,6 @@ QByteArray QUrl::toPercentEncoding(const QString &input, const QByteArray &exclu } /*! - \internal - \since 5.0 - Used in the setEncodedXXX compatibility functions. Converts \a ba to - QString form. -*/ -QString QUrl::fromEncodedComponent_helper(const QByteArray &ba) -{ - return qt_urlRecodeByteArray(ba); -} - -/*! \fn QByteArray QUrl::toPunycode(const QString &uc) \obsolete Returns a \a uc in Punycode encoding. diff --git a/src/corelib/io/qurl.h b/src/corelib/io/qurl.h index 1972251898..043b3b1482 100644 --- a/src/corelib/io/qurl.h +++ b/src/corelib/io/qurl.h @@ -279,10 +279,6 @@ public: NSURL *toNSURL() const Q_DECL_NS_RETURNS_AUTORELEASED; #endif -private: - static QString fromEncodedComponent_helper(const QByteArray &ba); - -public: static QString fromAce(const QByteArray &); static QByteArray toAce(const QString &); static QStringList idnWhitelist(); diff --git a/src/corelib/io/qurl_p.h b/src/corelib/io/qurl_p.h index 9a063a37e6..3d4a04928d 100644 --- a/src/corelib/io/qurl_p.h +++ b/src/corelib/io/qurl_p.h @@ -70,7 +70,6 @@ extern Q_AUTOTEST_EXPORT bool qt_nameprep(QString *source, int from); extern Q_AUTOTEST_EXPORT bool qt_check_std3rules(QStringView in); extern Q_AUTOTEST_EXPORT void qt_punycodeEncoder(QStringView in, QString *output); extern Q_AUTOTEST_EXPORT QString qt_punycodeDecoder(const QString &pc); -extern Q_AUTOTEST_EXPORT QString qt_urlRecodeByteArray(const QByteArray &ba); QT_END_NAMESPACE diff --git a/src/corelib/io/qurlrecode.cpp b/src/corelib/io/qurlrecode.cpp index ad23588978..2ac335cf5c 100644 --- a/src/corelib/io/qurlrecode.cpp +++ b/src/corelib/io/qurlrecode.cpp @@ -695,52 +695,4 @@ qt_urlRecode(QString &appendTo, QStringView in, encoding, actionTable, false); } -// qstring.cpp -bool qt_is_ascii(const char *&ptr, const char *end) noexcept; - -/*! - \internal - \since 5.0 - - \a ba contains an 8-bit form of the component and it might be - percent-encoded already. We can't use QString::fromUtf8 because it might - contain non-UTF8 sequences. We can't use QByteArray::toPercentEncoding - because it might already contain percent-encoded sequences. We can't use - qt_urlRecode because it needs UTF-16 input. -*/ -Q_AUTOTEST_EXPORT -QString qt_urlRecodeByteArray(const QByteArray &ba) -{ - if (ba.isNull()) - return QString(); - - // scan ba for anything above or equal to 0x80 - // control points below 0x20 are fine in QString - const char *in = ba.constData(); - const char *const end = ba.constEnd(); - if (qt_is_ascii(in, end)) { - // no non-ASCII found, we're safe to convert to QString - return QString::fromLatin1(ba, ba.size()); - } - - // we found something that we need to encode - QByteArray intermediate = ba; - intermediate.resize(ba.size() * 3 - (in - ba.constData())); - uchar *out = reinterpret_cast<uchar *>(intermediate.data() + (in - ba.constData())); - for ( ; in < end; ++in) { - if (*in & 0x80) { - // encode - *out++ = '%'; - *out++ = encodeNibble(uchar(*in) >> 4); - *out++ = encodeNibble(uchar(*in) & 0xf); - } else { - // keep - *out++ = uchar(*in); - } - } - - // now it's safe to call fromLatin1 - return QString::fromLatin1(intermediate, out - reinterpret_cast<uchar *>(intermediate.data())); -} - QT_END_NAMESPACE |