From 13bea137922c2501aa91bad1f22b0d9aac80ab7c Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 23 Apr 2020 18:03:45 +0200 Subject: [PATCH] QUrlIdna: port qt_ACE_do() to QStringView MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I29abc17576ceb72dd678e3ca59456e6220acd0a6 Reviewed-by: Lars Knoll Reviewed-by: MÃ¥rten Nordheim Reviewed-by: Thiago Macieira --- src/corelib/io/qurl_p.h | 2 +- src/corelib/io/qurlidna.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/corelib/io/qurl_p.h b/src/corelib/io/qurl_p.h index e75de32e031..fb9d559a09c 100644 --- a/src/corelib/io/qurl_p.h +++ b/src/corelib/io/qurl_p.h @@ -64,7 +64,7 @@ extern Q_AUTOTEST_EXPORT int qt_urlRecode(QString &appendTo, const QChar *begin, // in qurlidna.cpp enum AceLeadingDot { AllowLeadingDot, ForbidLeadingDot }; enum AceOperation { ToAceOnly, NormalizeAce }; -extern QString qt_ACE_do(const QString &domain, AceOperation op, AceLeadingDot dot); +extern QString qt_ACE_do(QStringView domain, AceOperation op, AceLeadingDot dot); extern Q_AUTOTEST_EXPORT bool qt_nameprep(QString *source, int from); extern Q_AUTOTEST_EXPORT bool qt_check_std3rules(const QChar *uc, int len); extern Q_AUTOTEST_EXPORT void qt_punycodeEncoder(const QChar *s, int ucLength, QString *output); diff --git a/src/corelib/io/qurlidna.cpp b/src/corelib/io/qurlidna.cpp index c5b205557ff..4376c993cd3 100644 --- a/src/corelib/io/qurlidna.cpp +++ b/src/corelib/io/qurlidna.cpp @@ -2485,7 +2485,7 @@ static qsizetype nextDotDelimiter(QStringView domain, qsizetype from = 0) return ch - b; } -QString qt_ACE_do(const QString &domain, AceOperation op, AceLeadingDot dot) +QString qt_ACE_do(QStringView domain, AceOperation op, AceLeadingDot dot) { QString result; if (domain.isEmpty()) @@ -2501,7 +2501,7 @@ QString qt_ACE_do(const QString &domain, AceOperation op, AceLeadingDot dot) const auto idx = nextDotDelimiter(domain, lastIdx); const auto labelLength = idx - lastIdx; if (labelLength == 0) { - if (idx == domain.length()) + if (idx == domain.size()) break; if (dot == ForbidLeadingDot || idx > 0) return QString(); // two delimiters in a row -- empty label not allowed @@ -2526,7 +2526,7 @@ QString qt_ACE_do(const QString &domain, AceOperation op, AceLeadingDot dot) result.resize(prevLen + labelLength); { QChar *out = result.data() + prevLen; - const QChar *in = domain.constData() + lastIdx; + const QChar *in = domain.data() + lastIdx; const QChar *e = in + labelLength; for (; in < e; ++in, ++out) { ushort uc = in->unicode();