diff options
Diffstat (limited to 'src/corelib/text')
-rw-r--r-- | src/corelib/text/qstringconverter.cpp | 7 | ||||
-rw-r--r-- | src/corelib/text/qstringconverter.h | 12 | ||||
-rw-r--r-- | src/corelib/text/qstringconverter_base.h | 22 |
3 files changed, 22 insertions, 19 deletions
diff --git a/src/corelib/text/qstringconverter.cpp b/src/corelib/text/qstringconverter.cpp index 199e85aaae..84569fccdd 100644 --- a/src/corelib/text/qstringconverter.cpp +++ b/src/corelib/text/qstringconverter.cpp @@ -1699,7 +1699,7 @@ static bool nameMatch(const char *a, const char *b) /*! \internal */ -QStringConverter::QStringConverter(const char *name, Flags f) +QStringConverter::QStringConverter(const char *name, Flags f) noexcept : iface(nullptr), state(f) { auto e = encodingForName(name); @@ -1745,7 +1745,7 @@ QStringConverter::QStringConverter(const char *name, Flags f) Returns an optional encoding for \a name. The optional is empty if the name could not get converted to a valid encoding. */ -std::optional<QStringConverter::Encoding> QStringConverter::encodingForName(const char *name) +std::optional<QStringConverter::Encoding> QStringConverter::encodingForName(const char *name) noexcept { for (int i = 0; i < LastEncoding + 1; ++i) { if (nameMatch(encodingInterfaces[i].name, name)) @@ -1763,7 +1763,8 @@ std::optional<QStringConverter::Encoding> QStringConverter::encodingForName(cons The returned optional is empty, if the encoding is unclear. */ -std::optional<QStringConverter::Encoding> QStringConverter::encodingForData(QByteArrayView data, char16_t expectedFirstCharacter) +std::optional<QStringConverter::Encoding> +QStringConverter::encodingForData(QByteArrayView data, char16_t expectedFirstCharacter) noexcept { // someone set us up the BOM? qsizetype arraySize = data.size(); diff --git a/src/corelib/text/qstringconverter.h b/src/corelib/text/qstringconverter.h index dcc2b4a433..381831dc9d 100644 --- a/src/corelib/text/qstringconverter.h +++ b/src/corelib/text/qstringconverter.h @@ -58,17 +58,17 @@ QT_BEGIN_NAMESPACE class QStringEncoder : public QStringConverter { protected: - constexpr explicit QStringEncoder(const Interface *i) + constexpr explicit QStringEncoder(const Interface *i) noexcept : QStringConverter(i) {} public: - constexpr QStringEncoder() + constexpr QStringEncoder() noexcept : QStringConverter() {} constexpr explicit QStringEncoder(Encoding encoding, Flags flags = Flag::Default) : QStringConverter(encoding, flags) {} - explicit QStringEncoder(const char *name, Flags flags = Flag::Default) + explicit QStringEncoder(const char *name, Flags flags = Flag::Default) noexcept : QStringConverter(name, flags) {} @@ -116,17 +116,17 @@ private: class QStringDecoder : public QStringConverter { protected: - constexpr explicit QStringDecoder(const Interface *i) + constexpr explicit QStringDecoder(const Interface *i) noexcept : QStringConverter(i) {} public: constexpr explicit QStringDecoder(Encoding encoding, Flags flags = Flag::Default) : QStringConverter(encoding, flags) {} - constexpr QStringDecoder() + constexpr QStringDecoder() noexcept : QStringConverter() {} - explicit QStringDecoder(const char *name, Flags f = Flag::Default) + explicit QStringDecoder(const char *name, Flags f = Flag::Default) noexcept : QStringConverter(name, f) {} diff --git a/src/corelib/text/qstringconverter_base.h b/src/corelib/text/qstringconverter_base.h index 23a011d297..b827f2d0a3 100644 --- a/src/corelib/text/qstringconverter_base.h +++ b/src/corelib/text/qstringconverter_base.h @@ -72,7 +72,7 @@ public: Q_DECLARE_FLAGS(Flags, Flag) struct State { - constexpr State(Flags f = Flag::Default) + constexpr State(Flags f = Flag::Default) noexcept : flags(f), state_data{0, 0, 0, 0} {} ~State() { clear(); } State(State &&other) noexcept @@ -155,33 +155,35 @@ protected: LengthFn fromUtf16Len = nullptr; }; - constexpr QStringConverter() + constexpr QStringConverter() noexcept : iface(nullptr) {} constexpr explicit QStringConverter(Encoding encoding, Flags f) : iface(&encodingInterfaces[int(encoding)]), state(f) {} - constexpr explicit QStringConverter(const Interface *i) + constexpr explicit QStringConverter(const Interface *i) noexcept : iface(i) {} - Q_CORE_EXPORT explicit QStringConverter(const char *name, Flags f); + Q_CORE_EXPORT explicit QStringConverter(const char *name, Flags f) noexcept; public: - bool isValid() const { return iface != nullptr; } - void resetState() + bool isValid() const noexcept { return iface != nullptr; } + + void resetState() noexcept { state.clear(); } - bool hasError() const { return state.invalidChars != 0; } + bool hasError() const noexcept { return state.invalidChars != 0; } - const char *name() const + const char *name() const noexcept { return isValid() ? iface->name : nullptr; } - Q_CORE_EXPORT static std::optional<Encoding> encodingForName(const char *name); + Q_CORE_EXPORT static std::optional<Encoding> encodingForName(const char *name) noexcept; Q_CORE_EXPORT static const char *nameForEncoding(Encoding e); - Q_CORE_EXPORT static std::optional<Encoding> encodingForData(QByteArrayView data, char16_t expectedFirstCharacter = 0); + Q_CORE_EXPORT static std::optional<Encoding> + encodingForData(QByteArrayView data, char16_t expectedFirstCharacter = 0) noexcept; Q_CORE_EXPORT static std::optional<Encoding> encodingForHtml(QByteArrayView data); protected: |