QStringConverter: port (name, Flags) ctor to QAnyStringView
These kinds of lookup functions are no-brainers for QAnyStringView. This is required to replace the QStringEncoder/Decoder constructors from QString, newly added for 6.8, and found in API review to be better written using QAnyStringView. Because this is API-Review-relevant, keep the implementation pessimized. It's not worse than the code that it replaces (toLatin1() on an unshared QString performs in-place conversion), and can be improved later. Task-number: QTBUG-126108 Change-Id: I4a0d1840d4754670b2e2f20d768ed98f7e1937d5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit f6c11ac4f20a16d0b2113014e2dac63b95d946ae) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
09c3e9da1f
commit
0026955270
@ -1148,6 +1148,10 @@ bool QtPrivate::ResultIteratorBase::operator!=(const QtPrivate::ResultIteratorBa
|
||||
|
||||
#include "qstringconverter.h"
|
||||
|
||||
QStringConverter::QStringConverter(const char *name, Flags f)
|
||||
: QStringConverter(QAnyStringView{name}, f)
|
||||
{}
|
||||
|
||||
auto QStringConverter::encodingForName(const char *name) noexcept -> std::optional<Encoding>
|
||||
{
|
||||
return encodingForName(QAnyStringView{name});
|
||||
|
@ -2146,6 +2146,10 @@ struct QStringConverterICU : QStringConverter
|
||||
return conv;
|
||||
}
|
||||
|
||||
static const QStringConverter::Interface *
|
||||
make_icu_converter(QStringConverterBase::State *state, QAnyStringView name)
|
||||
{ return make_icu_converter(state, name.toString().toLatin1().constData()); } // ### optimize
|
||||
|
||||
static const QStringConverter::Interface *make_icu_converter(
|
||||
QStringConverterBase::State *state,
|
||||
const char *name)
|
||||
@ -2183,7 +2187,7 @@ struct QStringConverterICU : QStringConverter
|
||||
/*!
|
||||
\internal
|
||||
*/
|
||||
QStringConverter::QStringConverter(const char *name, Flags f)
|
||||
QStringConverter::QStringConverter(QAnyStringView name, Flags f)
|
||||
: iface(nullptr), state(f)
|
||||
{
|
||||
auto e = encodingForName(name);
|
||||
|
@ -138,7 +138,10 @@ protected:
|
||||
constexpr explicit QStringConverter(const Interface *i) noexcept
|
||||
: iface(i)
|
||||
{}
|
||||
#if QT_CORE_REMOVED_SINCE(6, 8)
|
||||
Q_CORE_EXPORT explicit QStringConverter(const char *name, Flags f);
|
||||
#endif
|
||||
Q_CORE_EXPORT explicit QStringConverter(QAnyStringView name, Flags f);
|
||||
|
||||
|
||||
~QStringConverter() = default;
|
||||
|
Loading…
x
Reference in New Issue
Block a user